forked from VoxeLibre/VoxeLibre
write villager id into bed nodemeta
This commit is contained in:
parent
3ff4ea576d
commit
b58422a584
|
@ -573,7 +573,7 @@ end
|
|||
|
||||
local function go_home(entity)
|
||||
entity.state = "go_home"
|
||||
local b=entity.bed
|
||||
local b=entity._bed
|
||||
if not b then return end
|
||||
mobs:gopath(entity,b,function(entity,b)
|
||||
if vector.distance(entity.object:get_pos(),b) < 2 then
|
||||
|
@ -582,7 +582,7 @@ local function go_home(entity)
|
|||
entity.object:set_pos(b)
|
||||
local n=minetest.get_node(b)
|
||||
if n and n.name ~= "mcl_beds:bed_red_bottom" then
|
||||
entity.bed=nil --the stormtroopers have killed uncle owen
|
||||
entity._bed=nil --the stormtroopers have killed uncle owen
|
||||
return false
|
||||
end
|
||||
return true
|
||||
|
@ -1239,7 +1239,7 @@ mobs:register_mob("mobs_mc:villager", {
|
|||
fear_height = 4,
|
||||
jump = true,
|
||||
walk_chance = DEFAULT_WALK_CHANCE,
|
||||
bed = nil,
|
||||
_bed = nil,
|
||||
_id = nil,
|
||||
_profession = "unemployed",
|
||||
look_at_player = true,
|
||||
|
@ -1331,7 +1331,7 @@ mobs:register_mob("mobs_mc:villager", {
|
|||
self.walk_chance = DEFAULT_WALK_CHANCE
|
||||
self.jump = true
|
||||
end
|
||||
if self.bed and ( self.state ~= "go_home" and vector.distance(self.object:get_pos(),self.bed) > 50 ) then
|
||||
if self._bed and ( self.state ~= "go_home" and vector.distance(self.object:get_pos(),self._bed) > 50 ) then
|
||||
go_home(self)
|
||||
end
|
||||
if self._profession == "unemployed" then
|
||||
|
|
|
@ -53,15 +53,22 @@ end
|
|||
local function spawn_villagers(minp,maxp)
|
||||
local beds=minetest.find_nodes_in_area(minp,maxp,{"mcl_beds:bed_red_bottom"})
|
||||
for _,bed in pairs(beds) do
|
||||
minetest.get_meta(bed):set_string("villagebed","true")
|
||||
local m = minetest.get_meta(bed)
|
||||
if m:get_string("villager") == "" then
|
||||
local v=minetest.add_entity(bed,"mobs_mc:villager")
|
||||
if v then
|
||||
v:get_luaentity().bed = bed
|
||||
local l=v:get_luaentity()
|
||||
l._bed = bed
|
||||
m:set_string("villager",l._id)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
local p = minetest.find_node_near(minp,50,"mcl_core:grass_path")
|
||||
if p then
|
||||
minetest.add_entity(p,"mobs_mc:iron_golem")
|
||||
end
|
||||
end
|
||||
|
||||
--
|
||||
-- on map generation, try to build a settlement
|
||||
|
|
Loading…
Reference in New Issue