]> git.lizzy.rs Git - Crafter.git/commitdiff
Add in customized 22i's slime
authoroilboi <47129783+oilboi@users.noreply.github.com>
Tue, 19 May 2020 20:38:25 +0000 (16:38 -0400)
committeroilboi <47129783+oilboi@users.noreply.github.com>
Tue, 19 May 2020 20:38:25 +0000 (16:38 -0400)
mods/mob/api/api_hook.lua
mods/mob/init.lua
mods/mob/models/22i's blends/slime.blend [new file with mode: 0644]
mods/mob/models/22i's blends/slime.blend1 [new file with mode: 0644]
mods/mob/models/slime.b3d [new file with mode: 0644]
mods/mob/textures/slime.png [new file with mode: 0644]

index 1232288e98e1be6aa79fc9ab05cb2e28506828d8..453ad1e646f69474392f335201266ad0ba02a775 100644 (file)
@@ -100,6 +100,8 @@ mob_register.projectile_type = def.projectile_type
 
 mob_register.takes_fall_damage = def.takes_fall_damage or true
 mob_register.make_jump_noise = def.make_jump_noise
+mob_register.jump_animation = def.jump_animation
+mob_register.jumping_frame = def.jumping_frame
 
 mob_register.item_drop = def.item_drop
 mob_register.item_minimum = def.item_minimum or 1
@@ -111,6 +113,7 @@ mob_register.die_in_light_level = def.die_in_light_level
 mob_register.current_animation = 0
 mob_register.hurt_color_timer = 0
 mob_register.damage_color = def.damage_color or "red"
+mob_register.custom_on_death = def.custom_on_death
 
 mob_register.mob = true
 
@@ -141,7 +144,9 @@ mob_register.on_step = function(self, dtime,moveresult)
                self.move(self,dtime,moveresult)
                --self.debug_nametag(self,dtime)
                self.manage_hurt_color_timer(self,dtime)
-               self.set_animation(self)
+               if self.set_animation then
+                       self.set_animation(self)
+               end
                
                if self.look_around then
                        self.look_around(self,dtime)
@@ -150,7 +155,9 @@ mob_register.on_step = function(self, dtime,moveresult)
                self.manage_punch_timer(self,dtime)
        else
                self.manage_death_animation(self,dtime)
-               self.move_head(self,nil,dtime)
+               if self.move_head then
+                       self.move_head(self,nil,dtime)
+               end
        end
 
        --fix zombie state again
index 82071664e95bff0699b0eb5eab6490635553de49..dfa2c278ab9995b5ceadb43c1ef1c7e4597f0c74 100644 (file)
@@ -193,52 +193,119 @@ mobs.register_mob(
         --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 = 10,
+       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 = 10,
+       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 = 10,
+       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",
@@ -439,7 +506,7 @@ mobs.register_mob(
         hp = 10,
         gravity = {x = 0, y = -9.81, z = 0},
         movement_type = "walk",
-        max_speed = 4,
+        max_speed = 9,
         hostile = true,
         hostile_cooldown = false,
         state = 0,
diff --git a/mods/mob/models/22i's blends/slime.blend b/mods/mob/models/22i's blends/slime.blend
new file mode 100644 (file)
index 0000000..6de35a0
Binary files /dev/null and b/mods/mob/models/22i's blends/slime.blend differ
diff --git a/mods/mob/models/22i's blends/slime.blend1 b/mods/mob/models/22i's blends/slime.blend1
new file mode 100644 (file)
index 0000000..8f90152
Binary files /dev/null and b/mods/mob/models/22i's blends/slime.blend1 differ
diff --git a/mods/mob/models/slime.b3d b/mods/mob/models/slime.b3d
new file mode 100644 (file)
index 0000000..a30a09e
Binary files /dev/null and b/mods/mob/models/slime.b3d differ
diff --git a/mods/mob/textures/slime.png b/mods/mob/textures/slime.png
new file mode 100644 (file)
index 0000000..bcf69cf
Binary files /dev/null and b/mods/mob/textures/slime.png differ