}
)
+
+mobs.register_mob(
+ {
+ mobname = "snowman",
+ physical = true,
+ collide_with_objects = false,
+ collisionbox = {-0.37, 0, -0.37, 0.37, 1.75, 0.37},
+ visual = "mesh",
+ visual_size = {x = 3, y = 3},
+ mesh = "snowman.b3d",
+ textures = {
+ "snowman.png","snowman.png","snowman.png","snowman.png","snowman.png","snowman.png",
+ },
+
+ --these are used to anchor a point to the head position
+
+
+ -----
+ --head_bone = "head",
+ debug_head_pos = false,
+ head_directional_offset = 0, --used in vector.multiply(minetest.yaw_to_dir(body_yaw),head_offset)
+ head_height_offset = 1.625, --added to the base y position
+ --use this to correct the head position initially because it becomes severly offset - look at your blender model to get this perfect
+ head_position_correction = vector.new(0,4.6,0),
+ --this is used to tell the game the orientation of the bone (swaps x to and y, then z and y)
+ head_coord = "vertical",
+ --rotational_correction = math.pi/2,
+ -----
+
+ is_visible = true,
+ pointable = true,
+ automatic_face_movement_dir = 0,
+ automatic_face_movement_max_rotation_per_sec = 300,
+ makes_footstep_sound = false,
+ hp = 10,
+ gravity = {x = 0, y = -9.81, z = 0},
+ movement_type = "walk",
+ max_speed = 5,
+ state = 0,
+ view_distance = 15,
+
+ item_drop = "weather:snowball",
+ standing_frame = {x=0,y=0},
+ moving_frame = {x=0,y=0},
+ animation_multiplier = 10,
+ ----
+ ----
+ death_rotation = "x",
+
+ hurt_sound = "wool",
+ die_sound = "wool",
+
+
+ hostile = true,
+ attack_type = "projectile",
+ projectile_type = "weather:snowball",
+ projectile_timer_cooldown = 1,
+
+ }
+)
+
mobs.register_mob(
{
mobname = "phyg",
automatic_face_movement_dir = 0,
automatic_face_movement_max_rotation_per_sec = 300,
makes_footstep_sound = false,
+ takes_fall_damage = false,
+ make_jump_noise = false,
hp = 10,
gravity = {x = 0, y = -1, z = 0},
movement_type = "walk",
--explosion_time = 3, -- how long it takes for a mob to explode
}
)
+]]--
+mobs.register_mob(
+ {
+ mobname = "big_slime",
+ physical = true,
+ collide_with_objects = false,
+ collisionbox = {-1.25, 0, -1.25, 1.25, 2.5, 1.25},
+ visual = "mesh",
+ visual_size = {x = 15, y = 15},
+ mesh = "slime.b3d",
+ textures = {
+ "slime.png"
+ },
+ is_visible = true,
+ pointable = true,
+ automatic_face_movement_dir = 90,
+ automatic_face_movement_max_rotation_per_sec = 300,
+ makes_footstep_sound = false,
+ hp = 40,
+ gravity = {x = 0, y = -9.81, z = 0},
+ movement_type = "jump",
+ make_jump_noise = true,
+ max_speed = 5,
+ hostile = true,
+ state = 0,
+ view_distance = 20,
+ death_rotation = "z",
+ hurt_sound = "slime_die",
+ die_sound = "slime_die",
+ attack_type = "punch",
+ custom_on_death = function(self)
+ local pos = self.object:get_pos()
+ for i = 1,4 do
+ minetest.add_entity(pos,"mob:medium_slime")
+ end
+ end,
+ }
+)
mobs.register_mob(
{
- mobname = "slime",
- physical = true,
- collide_with_objects = false,
- collisionbox = {-0.37, -0.4, -0.37, 0.37, 0.5, 0.37},
- visual = "mesh",
- visual_size = {x = 3, y = 3},
- mesh = "slime.x",
- textures = {
- "slimecore.png","slimeeye.png","slimeeye.png","slimeeye.png","slimeoutside.png"
- },
- is_visible = true,
- pointable = true,
- automatic_face_movement_dir = 180,
- automatic_face_movement_max_rotation_per_sec = 300,
- makes_footstep_sound = false,
- hp = 10,
- gravity = {x = 0, y = -9.81, z = 0},
- movement_type = "jump",
- max_speed = 5,
- hostile = true,
- state = 0,
- view_distance = 20,
- item_drop = "mob:slimeball",
-
- standing_frame = {x=0,y=0},
- moving_frame = {x=0,y=0},
- animation_multiplier = 5,
- ----
- has_head = false, --remove this when mesh based head rotation is implemented
-
- death_rotation = "x",
-
- hurt_sound = "slime_die",
- die_sound = "slime_die",
-
- attack_type = "punch",
- die_in_light = true,
- die_in_light_level = 12,
+ mobname = "medium_slime",
+ physical = true,
+ collide_with_objects = false,
+ collisionbox = {-0.625, 0, -0.625, 0.625, 1.25, 0.625},
+ visual = "mesh",
+ visual_size = {x = 7.5, y = 7.5},
+ mesh = "slime.b3d",
+ textures = {
+ "slime.png"
+ },
+ is_visible = true,
+ pointable = true,
+ automatic_face_movement_dir = 90,
+ automatic_face_movement_max_rotation_per_sec = 300,
+ makes_footstep_sound = false,
+ hp = 20,
+ gravity = {x = 0, y = -9.81, z = 0},
+ movement_type = "jump",
+ make_jump_noise = true,
+ max_speed = 5,
+ hostile = true,
+ state = 0,
+ view_distance = 20,
+ death_rotation = "z",
+ hurt_sound = "slime_die",
+ die_sound = "slime_die",
+ attack_type = "punch",
+ custom_on_death = function(self)
+ local pos = self.object:get_pos()
+ pos.y = pos.y + 0.2
+ for i = 1,4 do
+ minetest.add_entity(pos,"mob:small_slime")
+ end
+ end,
}
)
+mobs.register_mob(
+ {
+ mobname = "small_slime",
+ physical = true,
+ collide_with_objects = false,
+ collisionbox = {-0.3, 0, -0.3, 0.3, 0.6, 0.3},
+ visual = "mesh",
+ visual_size = {x = 3.7, y = 3.7},
+ mesh = "slime.b3d",
+ textures = {
+ "slime.png"
+ },
+ is_visible = true,
+ pointable = true,
+ automatic_face_movement_dir = 90,
+ automatic_face_movement_max_rotation_per_sec = 300,
+ makes_footstep_sound = false,
+ hp = 5,
+ gravity = {x = 0, y = -9.81, z = 0},
+ movement_type = "jump",
+ make_jump_noise = true,
+ max_speed = 5,
+ hostile = true,
+ state = 0,
+ view_distance = 20,
+ death_rotation = "z",
+ hurt_sound = "slime_die",
+ die_sound = "slime_die",
+ attack_type = "punch",
+ item_drop = "mob:slimeball"
+ }
+)
+--[[
mobs.register_mob(
{
mobname = "flying_pig",
pointable = true,
automatic_face_movement_max_rotation_per_sec = 300,
makes_footstep_sound = false,
- hp = 10,
+ hp = 40,
gravity = {x = 0, y = -9.81, z = 0},
movement_type = "walk",
max_speed = 4,
hostile_cooldown = false,
state = 0,
view_distance = 20,
- item_drop = "mob:cooked_porkchop",
+ item_drop = "mob:gunpowder",
standing_frame = {x=0,y=0},
moving_frame = {x=0,y=40},
--projectile_timer_cooldown = 5,
--projectile_type = "tnt:tnt",
- explosion_radius = 3, -- how far away the mob has to be to initialize the explosion
- explosion_power = 7, -- how big the explosion has to be
+ explosion_radius = 4, -- how far away the mob has to be to initialize the explosion
+ explosion_power = 4, -- how big the explosion has to be
+ explosion_time = 3, -- how long it takes for a mob to explode
+
+ die_in_light = false,
+ --die_in_light_level = 12,
+ }
+)
+
+
+
+mobs.register_mob(
+ {
+ mobname = "nitro_creeper",
+ physical = true,
+ collide_with_objects = false,
+ collisionbox = {-0.37,0, -0.37, 0.37, 1.5, 0.37},
+ visual = "mesh",
+ visual_size = {x = 3.2, y = 3.2},
+ mesh = "creeper.b3d",
+ textures = {
+ "nitro_creeper.png"
+ },
+ is_visible = true,
+ pointable = true,
+ automatic_face_movement_max_rotation_per_sec = 300,
+ makes_footstep_sound = false,
+ hp = 70,
+ gravity = {x = 0, y = -9.81, z = 0},
+ movement_type = "walk",
+ max_speed = 9,
+ hostile = true,
+ hostile_cooldown = false,
+ state = 0,
+ view_distance = 20,
+ item_drop = "mob:gunpowder",
+
+ damage_color = "blue",
+
+ standing_frame = {x=0,y=0},
+ moving_frame = {x=0,y=40},
+ animation_multiplier = 20,
+ ----
+ pathfinds = true,
+
+ --these are used to anchor a point to the head position
+ -----
+ automatic_face_movement_dir = 0,
+ head_bone = "head",
+ debug_head_pos = false,
+ --this always has to be slightly positive
+ head_directional_offset = 0.01,
+ head_height_offset = 1.45, --added to the base y position
+ --use this to correct the head position initially because it becomes severly offset - look at your blender model to get this perfect
+ head_position_correction = vector.new(0,2.4,0),
+ head_coord = "vertical",
+ -----
+
+
+ death_rotation = "x",
+
+ hurt_sound = "creeper_hurt",
+ die_sound = "creeper_hurt",
+
+ attack_type = "explode",
+ --projectile_timer_cooldown = 5,
+ --projectile_type = "tnt:tnt",
+
+ explosion_radius = 6, -- how far away the mob has to be to initialize the explosion
+ explosion_power = 14, -- how big the explosion is (radius)
explosion_time = 3, -- how long it takes for a mob to explode
+ explosion_blink_timer = 0.1, -- how fast the blinking happens
die_in_light = false,
--die_in_light_level = 12,
}
)
+
+mobs.register_mob(
+ {
+ mobname = "spider",
+ physical = true,
+ collide_with_objects = false,
+ collisionbox = {-0.37, 0, -0.37, 0.37, 0.85, 0.37},
+ visual = "mesh",
+ visual_size = {x = 3, y = 3},
+ mesh = "spider.b3d",
+ textures = {
+ "spider.png"
+ },
+
+ --these are used to anchor a point to the head position
+
+
+ -----
+ head_bone = "body.head",
+ debug_head_pos = false,
+ rotational_correction = -math.pi/2,
+ head_directional_offset = 0.3, --used in vector.multiply(minetest.yaw_to_dir(body_yaw),head_offset)
+ head_height_offset = 0.63, --added to the base y position
+ --use this to correct the head position initially because it becomes severly offset - look at your blender model to get this perfect
+ head_position_correction = vector.new(0,1.24,0),
+ --this is used to tell the game the orientation of the bone (swaps x to and y, then z and y)
+ head_coord = "horizontal",
+ -----
+
+ is_visible = true,
+ pointable = true,
+ automatic_face_movement_dir = 90,
+ automatic_face_movement_max_rotation_per_sec = 300,
+ makes_footstep_sound = false,
+ hp = 40,
+ gravity = {x = 0, y = -9.81, z = 0},
+ movement_type = "walk",
+ max_speed = 5,
+ state = 0,
+ view_distance = 15,
+
+ item_drop = "mob:string",
+ standing_frame = {x=21,y=21},
+ moving_frame = {x=0,y=20},
+ animation_multiplier = 20,
+ ----
+ ----
+ death_rotation = "z",
+
+ hurt_sound = "spider",
+ die_sound = "spider_die",
+
+
+ hostile = true,
+ friendly_in_daylight = true,
+ attacked_hostile = true,
+ 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
+ }
+)
\ No newline at end of file