diff --git a/init.lua b/init.lua index 984cf47..ecb2bc5 100644 --- a/init.lua +++ b/init.lua @@ -205,6 +205,12 @@ if minetest.settings:get_bool("enable_recipe_test") then dofile(MP.."/recipe_test.lua") end -if minetest.get_modpath("technic") and minetest.get_modpath("mobs_animal") then - dofile(MP.."/mobs_bees.lua") +if minetest.get_modpath("mobs_animal") then + -- additional animals/textures + dofile(MP.."/mobs_animal.lua") + + if minetest.get_modpath("technic") then + -- beehive enhancements (technic centrifuge) + dofile(MP.."/mobs_bees.lua") + end end diff --git a/mobs_animal.lua b/mobs_animal.lua new file mode 100644 index 0000000..8229cf3 --- /dev/null +++ b/mobs_animal.lua @@ -0,0 +1,82 @@ +local S = mobs.intllib + +-- viking panda with texture +mobs:register_mob("pandorabox_custom:panda_viking", { + stepheight = 0.6, + type = "animal", + passive = false, + attack_type = "dogfight", + group_attack = false, + owner_loyal = true, + attack_npcs = false, + reach = 2, + damage = 3, + hp_min = 10, + hp_max = 24, + armor = 200, + collisionbox = {-0.4, -0.45, -0.4, 0.4, 0.45, 0.4}, + visual = "mesh", + mesh = "mobs_panda.b3d", + textures = { + {"mobs_panda_viking.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_panda", + attack = "mobs_panda", + }, + walk_chance = 5, + walk_velocity = 0.5, + run_velocity = 1.5, + jump = false, + jump_height = 6, + follow = {"bamboo:trunk"}, + view_range = 8, + drops = { + {name = "mobs:meat_raw", chance = 1, min = 1, max = 2}, + }, + water_damage = 0, + lava_damage = 5, + light_damage = 0, + fear_height = 6, + animation = { + speed_normal = 15, + stand_start = 130, + stand_end = 270, + stand1_start = 0, + stand1_end = 0, + stand2_start = 1, + stand2_end = 1, + stand3_start = 2, + stand3_end = 2, + walk_start = 10, + walk_end = 70, + run_start = 10, + run_end = 70, + punch_start = 80, + punch_end = 120, + -- 0 = rest, 1 = hiding (covers eyes), 2 = surprised + }, + on_rightclick = function(self, clicker) + + if mobs:feed_tame(self, clicker, 20, true, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then return end + end, +}) + +if minetest.get_modpath("bamboo") then + mobs:spawn({ + name = "pandorabox_custom:panda_viking", + nodes = {"bamboo:trunk"}, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 8000, -- 15000 + min_height = 10, + max_height = 80, + day_toggle = true, + }) +end + +mobs:register_egg("pandorabox_custom:panda_viking", S("Panda"), "mobs_panda_inv.png")