diff --git a/fox.lua b/fox.lua new file mode 100644 index 0000000..4243dcf --- /dev/null +++ b/fox.lua @@ -0,0 +1,78 @@ +local followf = {} + +table.insert(followf, "mobs:meat_raw") + +--if minetest.get_modpath("mobs_animal") then + table.insert(followf, "mobs_animal:muttom_raw") +--end + +-- Fox +mobs:register_mob(":mobs_doomed:fox", { + type = "monster", + attacks_monsters = true, + reach = 1, + damage = 2, + attack_type = "dogfight", + hp_min = 42, + hp_max = 52, + armor = 130, + collisionbox = {-0.4, -0.6, -0.4, 0.3, 0.3, 0.3}, +-- runaway = true, +-- pathfinding = true, + visual = "mesh", + mesh = "mobs_fox.b3d", + textures = { + {"mobs_fox.png"}, + }, + blood_texture = "mobs_blood.png", + visual_size = {x=1.5, y=1.5}, + makes_footstep_sound = true, + walk_velocity = 1, + run_velocity = 2.5, + jump = true, + drops = { + {name = "mobs:meat_raw", chance = 1, min = 1, max = 1}, + }, + on_activate = function(self) + if math.random(1,5) == 1 then + self.type = "animal" + end + end, + water_damage = 0, + lava_damage = 2, + light_damage = 0, + fire_damage = 2, + fall_damage = 1, + fear_height = 4, + replace_rate = 10, + replace_what = {"farming:wheat_5", "default:fence_wood", "default:grass_5", "default:dirt_with_grass"}, + replace_with = "air", + follow = followf, + view_range = 14, + animation = { + speed_normal = 6, + speed_run = 15, + walk_start = 25, + walk_end = 35, + stand_start = 51, + stand_end = 60, + run_start = 1, + run_end = 16, + punch_start = 36, + punch_end = 51, + }, + on_rightclick = function(self, clicker) + + if mobs:feed_tame(self, clicker, 8, true, true) then + return + end + + mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) + end, +}) + + +mobs:register_egg(":mobs_doomed:fox", "Fox", "wool_orange.png", 1) + +mobs:spawn({name = ":mobs_doomed:owl", nodes = {"group:tree"}, neighbor = {}, + min_light = 0, max_light = 7, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000}) diff --git a/init.lua b/init.lua index 491e256..7c60c2e 100644 --- a/init.lua +++ b/init.lua @@ -48,6 +48,10 @@ dofile(path .. "kitten.lua") -- Jordach/BFD dofile(path .. "penguin.lua") -- D00Med dofile(path .. "panda.lua") -- AspireMint +dofile(path .. "fox.lua") -- D00Med +dofile(path .. "owl.lua") -- D00Med +dofile(path .. "tortoise.lua") -- D00Med + -- Load custom spawning if mobs.custom_spawn_animal then diff --git a/models/mobs_fox.b3d b/models/mobs_fox.b3d new file mode 100644 index 0000000..bf7f2b0 Binary files /dev/null and b/models/mobs_fox.b3d differ diff --git a/models/mobs_owl.b3d b/models/mobs_owl.b3d new file mode 100644 index 0000000..f256bb3 Binary files /dev/null and b/models/mobs_owl.b3d differ diff --git a/models/mobs_tortoise.b3d b/models/mobs_tortoise.b3d new file mode 100644 index 0000000..039c5bc Binary files /dev/null and b/models/mobs_tortoise.b3d differ diff --git a/owl.lua b/owl.lua new file mode 100644 index 0000000..f41194c --- /dev/null +++ b/owl.lua @@ -0,0 +1,101 @@ +local follow = {} + +-- detect common minetest famous mobs +if minetest.get_modpath("farming") then + table.insert(follow, "farming:seed_wheat") + table.insert(follow, "farming:seed_cotton") +end +if minetest.get_modpath("butterflies") then + table.insert(follow, "butterflies:butterfly_red") + table.insert(follow, "butterflies:butterfly_violet") + table.insert(follow, "butterflies:butterfly_white") +end +if minetest.get_modpath("fireflies") then + table.insert(follow, "fireflies:firefly") +end +if minetest.get_modpath("mobs_animal") then + table.insert(follow, "mobs_animal:rat") + table.insert(follow, "mobs_animal:bee") + table.insert(follow, "mobs_animal:bunny") + table.insert(follow, "mobs_animal:chicken") + table.insert(follow, "mobs_animal:muttom_raw") +end +-- compatibility with those made specially for other games +if minetest.get_modpath("mobs_bugslive") then + table.insert(follow, "mobs_bugslive:bug") +end +if minetest.get_modpath("mobs_butterfly") then + table.insert(follow, "mobs_butterfly:butterfly") +end +if minetest.get_modpath("mobs_fish") then + table.insert(follow, "mobs_fish:tropical") + table.insert(follow, "mobs_fish:clownfish") +end +if minetest.get_modpath("mobs_better_rat") then + table.insert(follow, "mobs_better_rat:rat") +end +if minetest.get_modpath("mobs_bat") then + table.insert(follow, "mobs_bat:bat") +end +if minetest.get_modpath("mobs_birds") then + table.insert(follow, "mobs_birds:bird_sm") +end + +mobs:register_mob(":mobs_doomed:owl", { + type = "animal", + passive = true, + hp_min = 12, + hp_max = 22, + armor = 130, + collisionbox = {-0.3, -0.5, -0.3, 0.2, 0.2, 0.2}, + visual = "mesh", + mesh = "mobs_owl.b3d", + textures = { + {"mobs_owl.png"}, + }, + blood_texture = "mobs_blood.png", + visual_size = {x=2, y=2}, + makes_footstep_sound = false, + walk_velocity = 0, + run_velocity = 0, + jump = false, + drops = { + {name = "mobs:meat_raw", chance = 1, min = 1, max = 1}, + }, + water_damage = 2, + lava_damage = 2, + fire_damage = 2, + light_damage = 0, + view_range = 1, + follow=follow, + do_custom = function(self) + local daytime = minetest.get_timeofday()*24000 + if daytime <=6000 then + self.object:set_properties({ + textures = {"mobs_owl_awake.png"}, + mesh = "mobs_owl.b3d", + }) + elseif daytime >=6000 then + self.object:set_properties({ + textures = {"mobs_owl.png"}, + mesh = "mobs_owl.b3d", + }) + end + end, + on_rightclick = function(self, clicker) + if mobs:feed_tame(self, clicker, 8, true, true) then return end + if mobs:protect(self, clicker) then return end + mobs:capture_mob(self, clicker, 0, 50, 5, false, nil) + end, + animation = { + speed_normal = 1, + walk_start = 1, + walk_end = 50, + }, +}) + + +mobs:register_egg(":mobs_doomed:owl", "Owl", "default_tree.png", 1) + + mobs:spawn({name = ":mobs_doomed:owl", nodes = {"group:tree"}, neighbor = {}, + min_light = 0, max_light = 7, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000}) diff --git a/readme.md b/readme.md index b500ab8..ad88a08 100644 --- a/readme.md +++ b/readme.md @@ -62,4 +62,13 @@ These monochrome cuties spawn in Ethereal's bamboo biome and can be tamed with b --- *Note: After breeding, animals need to rest for 4 minutes and baby animals take 4 minutes to grow up, also feeding them helps them grow quicker...* +### tortoise +These were extracted from dmobs mod from D00Med and its friendly but pretty slowww + +### Owl +These were extracted from dmobs mod and spawns at the leaves or trees, will rest at night and at day will hide + +### Fox +These were extracted from dmobs mod, its aggressive and will not leave you from attack + #### Lucky Blocks: 20 diff --git a/textures/mobs_fox.png b/textures/mobs_fox.png new file mode 100644 index 0000000..ff40c72 Binary files /dev/null and b/textures/mobs_fox.png differ diff --git a/textures/mobs_owl.png b/textures/mobs_owl.png new file mode 100644 index 0000000..0d1bba1 Binary files /dev/null and b/textures/mobs_owl.png differ diff --git a/textures/mobs_owl_awake.png b/textures/mobs_owl_awake.png new file mode 100644 index 0000000..7cdf2f9 Binary files /dev/null and b/textures/mobs_owl_awake.png differ diff --git a/textures/mobs_tortoise.png b/textures/mobs_tortoise.png new file mode 100644 index 0000000..f536f10 Binary files /dev/null and b/textures/mobs_tortoise.png differ diff --git a/tortoise.lua b/tortoise.lua new file mode 100644 index 0000000..4901702 --- /dev/null +++ b/tortoise.lua @@ -0,0 +1,74 @@ + +local dropstor + +dropstor = {{name = "default:stick", chance = 1, min = 1, max = 1},} + +if minetest.get_modpath("farming") then + dropstor = { + {name = "default:stick", chance = 1, min = 1, max = 1}, + {name = "farming:string", chance = 2, min = 0, max = 1}, + } +end + +mobs:register_mob(":mobs_doomed:tortoise", { + type = "animal", + passive = false, + reach = 1, + damage = 2, + attack_type = "dogfight", + hp_min = 6, + hp_max = 12, + armor = 130, + collisionbox = {-0.2, 0, -0.2, 0.2, 0.3, 0.2}, + visual = "mesh", + mesh = "mobs_tortoise.b3d", + textures = { + {"mobs_tortoise.png"}, + }, + blood_texture = "mobs_blood.png", + visual_size = {x=1, y=1}, + makes_footstep_sound = true, + walk_velocity = 0.5, + run_velocity = 1, + jump = false, + jump_height = 0.5, + floats = true, + drops = dropstor, + water_damage = 0, + lava_damage = 2, + fire_damage = 2, + light_damage = 0, + fall_damage = 1, + fall_speed = -10, + fear_height = 4, + follow = { + {"default:papyrus"}, + {"default:leaves"} + }, + view_range = 14, + animation = { + speed_normal = 6, + speed_run = 10, + walk_start = 23, + walk_end = 43, + stand_start = 1, + stand_end = 20, + run_start = 23, + run_end = 43, + + }, + on_rightclick = function(self, clicker) + + if mobs:feed_tame(self, clicker, 8, true, true) then + return + end + + mobs:capture_mob(self, clicker, 0, 50, 80, false, nil) + end, +}) + + +mobs:register_egg(":mobs_doomed:tortoise", "Tortoise", "default_grass.png", 1) + + mobs:spawn({name = ":mobs_doomed:tortoise", nodes = {"default:water_source", "group:sand"}, neighbor = {}, + min_light = 5, max_light = 10, interval = 300, chance = 8000, active_object_count = 2, min_height = -100, max_height = 500})