--this is going to be used to set an active mob limit
global_mob_amount = 0
-mob_limit = 100
local path = minetest.get_modpath(minetest.get_current_modname())
attacked_hostile = false,
attack_type = "punch",
group_attack = true,
+
+
--explosion_radius = 4, -- how far away the mob has to be to initialize the explosion
--explosion_power = 7, -- how big the explosion has to be
--explosion_time = 3, -- how long it takes for a mob to explode
+ fire_table = {
+ visual_size = vector.new(1/3,2/3,1/3),
+ position = vector.new(0,3,0),
+ }
}
)
pos.y = pos.y + 0.5
minetest.throw_item(pos,{name="weather:snow_block"})
end
- end
+ end,
+ fire_table = {
+ visual_size = vector.new(1/3,2/3,1/3),
+ position = vector.new(0,3,0),
+ }
}
+
)
mobs.register_mob(
--explosion_radius = 4, -- how far away the mob has to be to initialize the explosion
--explosion_power = 7, -- how big the explosion has to be
--explosion_time = 3, -- how long it takes for a mob to explode
+ fire_table = {
+ visual_size = vector.new(1/6,1/2.2,1/6),
+ position = vector.new(0,2.3,0),
+ }
}
)
})
end
end,
+ fire_table = {
+ visual_size = vector.new(1/4,2/3,1/4),
+ position = vector.new(0,3.3,0),
+ }
}
)
--explosion_radius = 4, -- how far away the mob has to be to initialize the explosion
--explosion_power = 7, -- how big the explosion has to be
--explosion_time = 3, -- how long it takes for a mob to explode
+ fire_table = {
+ visual_size = vector.new(1/3,2/3,1/3),
+ position = vector.new(0,3,0),
+ }
}
)
custom_on_death = function(self)
local pos = self.object:get_pos()
for i = 1,4 do
- minetest.add_entity(pos,"mob:medium_slime")
+ local obj = minetest.add_entity(pos,"mob:medium_slime")
+ if self.on_fire then
+ start_fire(obj)
+ end
end
end,
+ --this is used to properly position fire when the mob catches on fire
+ fire_table = {
+ visual_size = vector.new(1/5.8,1/3.3,1/5.8),
+ position = vector.new(0,1.5,0),
+ }
}
)
local pos = self.object:get_pos()
pos.y = pos.y + 0.2
for i = 1,4 do
- minetest.add_entity(pos,"mob:small_slime")
+ local obj = minetest.add_entity(pos,"mob:small_slime")
+ if self.on_fire then
+ start_fire(obj)
+ end
end
end,
+ fire_table = {
+ visual_size = vector.new(1/5.8,1/3.3,1/5.8),
+ position = vector.new(0,1.5,0),
+ }
}
)
die_sound = "slime_die",
attack_damage = 1,
attack_type = "punch",
- item_drop = "mob:slimeball"
+ item_drop = "mob:slimeball",
+ fire_table = {
+ visual_size = vector.new(1/5.8,1/3.3,1/5.8),
+ position = vector.new(0,1.5,0),
+ }
}
)
die_in_light = false,
--die_in_light_level = 12,
+ fire_table = {
+ visual_size = vector.new(1/4,2/3,1/4),
+ position = vector.new(0,3.3,0),
+ }
}
)
die_in_light = false,
--die_in_light_level = 12,
+ fire_table = {
+ visual_size = vector.new(1/4,2/3,1/4),
+ position = vector.new(0,3.3,0),
+ }
}
)
die_in_light = false,
--die_in_light_level = 12,
+ fire_table = {
+ visual_size = vector.new(1/4,2/3,1/4),
+ position = vector.new(0,3.3,0),
+ }
}
)
+local spider_eyes = {}
+
+spider_eyes.initial_properties = {
+ visual = "mesh",
+ mesh = "spider_eyes.b3d",
+ textures = {"spider_eyes.png"},
+ pointable = false,
+ collisionbox = {0, 0, 0, 0, 0, 0}
+}
+spider_eyes.glow = -1
+spider_eyes.on_step = function(self)
+ if not self.owner or not self.owner:get_luaentity() then
+ self.object:remove()
+ else
+ local owner_head_bone = self.owner:get_luaentity().head_bone
+ local position,rotation = self.owner:get_bone_position(owner_head_bone)
+ self.object:set_attach(self.owner, owner_head_bone, vector.new(0,0,0), rotation)
+ end
+end
+minetest.register_entity("mob:spider_eyes",spider_eyes)
mobs.register_mob(
{
group_attack = true,
custom_on_activate = function(self)
+ local eyes = minetest.add_entity(self.object:get_pos(), "mob:spider_eyes")
+ eyes:set_attach(self.object, "body.head", vector.new(0,0,0), vector.new(0,0,0))
+ eyes:get_luaentity().owner = self.object
if math.random() > 0.998 then
local obj = minetest.add_entity(self.object:get_pos(),"mob:pig")
local obj2 = minetest.add_entity(self.object:get_pos(),"tnt:tnt")
obj:set_properties({visual_size={x=1,y=1}})
obj2:set_properties({visual_size={x=1/3,y=1/3}})
end
- end
+ end,
--explosion_radius = 4, -- how far away the mob has to be to initialize the explosion
--explosion_power = 7, -- how big the explosion has to be
--explosion_time = 3, -- how long it takes for a mob to explode
+ --this is used to properly position fire when the mob catches on fire
+ fire_table = {
+ visual_size = vector.new(1.3/3,2/3,1.3/3),
+ position = vector.new(0,4,0),
+ }
}
)
--explosion_radius = 4, -- how far away the mob has to be to initialize the explosion
--explosion_power = 7, -- how big the explosion has to be
--explosion_time = 3, -- how long it takes for a mob to explode
+ fire_table = {
+ visual_size = vector.new(1.3/3,2/3,1.3/3),
+ position = vector.new(0,4,0),
+ }
}
)