From 8ae2eae1d4156ca02a61dda2e82c669b08c586b8 Mon Sep 17 00:00:00 2001 From: thunderdog1138 Date: Wed, 9 Dec 2020 18:55:07 +0000 Subject: [PATCH] Upload files to 'mods' --- mods/readme.md | 45 ++++++++ mods/screenshot.png | Bin 0 -> 34071 bytes mods/sheep.lua | 254 +++++++++++++++++++++++++++++++++++++++++ mods/spawn_example.lua | 195 +++++++++++++++++++++++++++++++ mods/warthog.lua | 116 +++++++++++++++++++ 5 files changed, 610 insertions(+) create mode 100644 mods/readme.md create mode 100644 mods/screenshot.png create mode 100644 mods/sheep.lua create mode 100644 mods/spawn_example.lua create mode 100644 mods/warthog.lua diff --git a/mods/readme.md b/mods/readme.md new file mode 100644 index 00000000..85d8a009 --- /dev/null +++ b/mods/readme.md @@ -0,0 +1,45 @@ +# ANIMAL MOBS + +### Bee +Tends to buzz around flowers and gives honey when killed, you can also right-click a bee to pick it up and place in inventory. 3x bee's in a row can craft a beehive. + +--- +### Bunny +Bunnies appear in green grass areas (prairie biome in ethereal) and can be tamed with 4 carrots or grass. Can also be picked up and placed in inventory and gives 1 raw rabbit and 1 rabbit hide when killed. + +--- +### Chicken +Found in green areas (bamboo biome in ethereal) and lays eggs on flat ground, Can be picked up and placed in inventory and gives 1-2 raw chicken when killed. Feed 8x wheat seed to breed. + +--- +### Cow +Wanders around eating grass/wheat and can be right-clicked with empty bucket to get milk. Cows will defend themselves when hit and can be right-clicked with 8x wheat to tame and breed. + +--- +### Kitten +Found on green grass these cute cats walk around and can be picked up and placed in inventory as pets or right-clicked with 4x live rats or raw fish (found in ethereal) and tamed. They can sometimes leave you little gifts of a hairball. + +--- +### Rat +Typically found around stone they can be picked up and cooked for eating. + +--- +### Sheep +Green grass and wheat munchers that can be clipped using shears to give 1-3 wool. Feed sheep 8x wheat to regrow wool, tame and breed. Right-click a tamed sheep with dye to change it's colour. Will drop 1-3 raw mutton when killed. + +--- +### Warthog +Warthogs unlike pigs defend themselves when hit and give 1-3 raw pork when killed, they can also be right-clicked with 8x apples to tame or breed. + +--- +### Penguin +These little guys can be found in glacier biomes on top of snow and have the ability to swim if they fall into water. + +--- +### Panda +These monochrome cuties spawn in Ethereal's bamboo biome and can be tamed with bamboo stalks :) Remember they have claws though. + +--- +*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...* + +#### Lucky Blocks: 20 diff --git a/mods/screenshot.png b/mods/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..51c24174fd5495b5b7363465c70884f9c66e4637 GIT binary patch literal 34071 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 literal 0 HcmV?d00001 diff --git a/mods/sheep.lua b/mods/sheep.lua new file mode 100644 index 00000000..31daab13 --- /dev/null +++ b/mods/sheep.lua @@ -0,0 +1,254 @@ + +local S = mobs.intllib + +local all_colours = { + {"black", S("Black"), "#000000b0"}, + {"blue", S("Blue"), "#015dbb70"}, + {"brown", S("Brown"), "#663300a0"}, + {"cyan", S("Cyan"), "#01ffd870"}, + {"dark_green", S("Dark Green"), "#005b0770"}, + {"dark_grey", S("Dark Grey"), "#303030b0"}, + {"green", S("Green"), "#61ff0170"}, + {"grey", S("Grey"), "#5b5b5bb0"}, + {"magenta", S("Magenta"), "#ff05bb70"}, + {"orange", S("Orange"), "#ff840170"}, + {"pink", S("Pink"), "#ff65b570"}, + {"red", S("Red"), "#ff0000a0"}, + {"violet", S("Violet"), "#2000c970"}, + {"white", S("White"), "#abababc0"}, + {"yellow", S("Yellow"), "#e3ff0070"}, +} + + +-- Sheep by PilzAdam, texture converted to minetest by AMMOnym from Summerfield pack + +for _, col in ipairs(all_colours) do + + mobs:register_mob("mobs_animal:sheep_"..col[1], { + stay_near = {"farming:straw", 10}, + stepheight = 0.6, + type = "animal", + passive = true, + hp_min = 8, + hp_max = 10, + armor = 200, + collisionbox = {-0.5, -1, -0.5, 0.5, 0.3, 0.5}, + visual = "mesh", + mesh = "mobs_sheep.b3d", + textures = { + {"mobs_sheep_base.png^(mobs_sheep_wool.png^[colorize:" .. col[3] .. ")"}, + }, + gotten_texture = {"mobs_sheep_shaved.png"}, + gotten_mesh = "mobs_sheep_shaved.b3d", + makes_footstep_sound = true, + sounds = { + random = "mobs_sheep", + }, + walk_velocity = 1, + run_velocity = 2, + runaway = true, + jump = true, + jump_height = 6, + pushable = true, + drops = { + {name = "mobs:mutton_raw", chance = 1, min = 1, max = 2}, + {name = "wool:"..col[1], chance = 1, min = 1, max = 1}, + }, + water_damage = 0, + lava_damage = 5, + light_damage = 0, + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 80, + walk_start = 81, + walk_end = 100, + + die_start = 1, -- we dont have a specific death animation so we will + die_end = 2, -- re-use 2 standing frames at a speed of 1 fps and + die_speed = 1, -- have mob rotate when dying. + die_loop = false, + die_rotate = true, + }, + follow = { + "farming:wheat", "default:grass_1", "farming:barley", + "farming:oat", "farming:rye" + }, + view_range = 8, + replace_rate = 10, + replace_what = { + {"group:grass", "air", -1}, + {"default:dirt_with_grass", "default:dirt", -2} + }, + fear_height = 3, + on_replace = function(self, pos, oldnode, newnode) + + self.food = (self.food or 0) + 1 + + -- if sheep replaces 8x grass then it regrows wool + if self.food >= 8 then + + self.food = 0 + self.gotten = false + + self.object:set_properties({ + textures = {"mobs_sheep_base.png^(mobs_sheep_wool.png^[colorize:" .. col[3] .. ")"}, + mesh = "mobs_sheep.b3d", + }) + end + end, + on_rightclick = function(self, clicker) + + --are we feeding? + if mobs:feed_tame(self, clicker, 8, true, true) then + + --if fed 7 times then sheep regrows wool + if self.food and self.food > 6 then + + self.gotten = false + + self.object:set_properties({ + textures = {"mobs_sheep_base.png^(mobs_sheep_wool.png^[colorize:" .. col[3] .. ")"}, + mesh = "mobs_sheep.b3d", + }) + end + + return + end + + local item = clicker:get_wielded_item() + local itemname = item:get_name() + local name = clicker:get_player_name() + + --are we giving a haircut> + if itemname == "mobs:shears" then + + if self.gotten ~= false + or self.child ~= false + or name ~= self.owner + or not minetest.get_modpath("wool") then + return + end + + self.gotten = true -- shaved + + local obj = minetest.add_item( + self.object:get_pos(), + ItemStack( "wool:" .. col[1] .. " " .. math.random(1, 3) ) + ) + + if obj then + + obj:setvelocity({ + x = math.random(-1, 1), + y = 5, + z = math.random(-1, 1) + }) + end + + item:add_wear(650) -- 100 uses + + clicker:set_wielded_item(item) + + self.object:set_properties({ + textures = {"mobs_sheep_shaved.png"}, + mesh = "mobs_sheep_shaved.b3d", + }) + + return + end + + --are we coloring? + if itemname:find("dye:") then + + if self.gotten == false + and self.child == false + and self.tamed == true + and name == self.owner then + + local colr = string.split(itemname, ":")[2] + + for _,c in pairs(all_colours) do + + if c[1] == colr then + + local pos = self.object:get_pos() + + self.object:remove() + + local mob = minetest.add_entity(pos, "mobs_animal:sheep_" .. colr) + local ent = mob:get_luaentity() + + ent.owner = name + ent.tamed = true + + -- take item + if not mobs.is_creative(clicker:get_player_name()) then + item:take_item() + clicker:set_wielded_item(item) + end + + break + end + end + end + + return + end + + -- protect mod with mobs:protector item + if mobs:protect(self, clicker) then return end + + --are we capturing? + if mobs:capture_mob(self, clicker, 0, 5, 60, false, nil) then return end + end + }) + +mobs:register_egg("mobs_animal:sheep_"..col[1], S("@1 Sheep", col[2]), "wool_"..col[1]..".png^mobs_sheep_inv.png") + + -- compatibility + mobs:alias_mob("mobs:sheep_" .. col[1], "mobs_animal:sheep_" .. col[1]) + +end + + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "mobs_animal:sheep_white", + nodes = {"default:dirt_with_grass", "ethereal:green_dirt"}, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 8000, -- 15000 + min_height = 0, + max_height = 200, + day_toggle = true, +}) +end + + +mobs:alias_mob("mobs:sheep", "mobs_animal:sheep_white") -- compatibility + +-- raw mutton +minetest.register_craftitem(":mobs:mutton_raw", { + description = S("Raw Mutton"), + inventory_image = "mobs_mutton_raw.png", + on_use = minetest.item_eat(2), + groups = {food_meat_raw = 1, food_mutton_raw = 1, flammable = 2}, +}) + +-- cooked mutton +minetest.register_craftitem(":mobs:mutton_cooked", { + description = S("Cooked Mutton"), + inventory_image = "mobs_mutton_cooked.png", + on_use = minetest.item_eat(6), + groups = {food_meat = 1, food_mutton = 1, flammable = 2}, +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:mutton_cooked", + recipe = "mobs:mutton_raw", + cooktime = 5, +}) diff --git a/mods/spawn_example.lua b/mods/spawn_example.lua new file mode 100644 index 00000000..22814c19 --- /dev/null +++ b/mods/spawn_example.lua @@ -0,0 +1,195 @@ + +--[[ Spawn Template, defaults to values shown if line not provided + +mobs:spawn({ + + name = "", + + - Name of mob, must be provided e.g. "mymod:my_mob" + + nodes = {"group:soil, "group:stone"}, + + - Nodes to spawn on top of. + + neighbors = {"air"}, + + - Nodes to spawn beside. + + min_light = 0, + + - Minimum light level. + + max_light = 15, + + - Maximum light level, 15 is sunlight only. + + interval = 30, + + - Spawn interval in seconds. + + chance = 5000, + + - Spawn chance, 1 in every 5000 nodes. + + active_object_count = 1, + + - Active mobs of this type in area. + + min_height = -31000, + + - Minimum height level. + + max_height = 31000, + + - Maximum height level. + + day_toggle = nil, + + - Daytime toggle, true to spawn during day, false for night, nil for both + + on_spawn = nil, + + - On spawn function to run when mob spawns in world + + on_map_load = nil, + + - On map load, when true mob only spawns in newly generated map areas +}) +]]-- + + +-- Bee + +mobs:spawn({ + name = "mobs_animal:bee", + nodes = {"group:flower"}, + min_light = 14, + interval = 60, + chance = 7000, + min_height = 3, + max_height = 200, + day_toggle = true, +}) + +-- Bunny + +mobs:spawn({ + name = "mobs_animal:bunny", + nodes = {"default:dirt_with_grass"}, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 8000, + min_height = 5, + max_height = 200, + day_toggle = true, +}) + +-- Chicken + +mobs:spawn({ + name = "mobs_animal:chicken", + nodes = {"default:dirt_with_grass"}, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 8000, + min_height = 5, + max_height = 200, + day_toggle = true, +}) + +-- Cow + +mobs:spawn({ + name = "mobs_animal:cow", + nodes = {"default:dirt_with_grass", "ethereal:green_dirt"}, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 8000, + min_height = 5, + max_height = 200, + day_toggle = true, +}) + +-- Kitten + +mobs:spawn({ + name = "mobs_animal:kitten", + nodes = {"default:dirt_with_grass"}, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 10000, + min_height = 5, + max_height = 50, + day_toggle = true, +}) + +-- Panda + +mobs:spawn({ + name = "mobs_animal:panda", + nodes = {"ethereal:bamboo_dirt"}, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 8000, + min_height = 10, + max_height = 80, + day_toggle = true, +}) + +-- Penguin + +mobs:spawn({ + name = "mobs_animal:penguin", + nodes = {"default:snowblock"}, + min_light = 14, + interval = 60, + chance = 20000, + min_height = 0, + max_height = 200, + day_toggle = true, +}) + +-- Rat + +mobs:spawn({ + name = "mobs_animal:rat", + nodes = {"default:stone"}, + min_light = 3, + max_light = 9, + interval = 60, + chance = 8000, + max_height = 0, +}) + +-- Sheep + +mobs:spawn({ + name = "mobs_animal:sheep_white", + nodes = {"default:dirt_with_grass", "ethereal:green_dirt"}, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 8000, + min_height = 0, + max_height = 200, + day_toggle = true, +}) + +-- Warthog + +mobs:spawn({ + name = "mobs_animal:pumba", + nodes = {"default:dirt_with_dry_grass", "default:dry_dirt_with_dry_grass"}, + neighbors = {"group:dry_grass"}, + min_light = 14, + interval = 60, + chance = 8000, + min_height = 0, + max_height = 200, + day_toggle = true, +}) diff --git a/mods/warthog.lua b/mods/warthog.lua new file mode 100644 index 00000000..4c56d5bb --- /dev/null +++ b/mods/warthog.lua @@ -0,0 +1,116 @@ + +local S = mobs.intllib + + +-- Warthog originally by KrupnoPavel, B3D model by sirrobzeroone + +mobs:register_mob("mobs_animal:pumba", { + stepheight = 0.6, + type = "animal", + passive = false, + attack_type = "dogfight", + group_attack = true, + owner_loyal = true, + attack_npcs = false, + reach = 2, + damage = 2, + hp_min = 5, + hp_max = 15, + armor = 200, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 0.95, 0.4}, + visual = "mesh", + mesh = "mobs_pumba.b3d", + textures = { + {"mobs_pumba.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_pig", + attack = "mobs_pig_angry", + }, + walk_velocity = 2, + run_velocity = 3, + jump = true, + jump_height = 6, + pushable = true, + follow = {"default:apple", "farming:potato"}, + view_range = 10, + drops = { + {name = "mobs:pork_raw", chance = 1, min = 1, max = 3}, + }, + water_damage = 0, + lava_damage = 5, + light_damage = 0, + fear_height = 2, + animation = { + speed_normal = 15, + stand_start = 25, + stand_end = 55, + walk_start = 70, + walk_end = 100, + punch_start = 70, + punch_end = 100, + }, + 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 + if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then return end + end, +}) + +local spawn_on = {"default:dirt_with_grass"} +local spawn_by = {"group:grass"} + +if minetest.get_mapgen_setting("mg_name") ~= "v6" then + spawn_on = {"default:dirt_with_dry_grass", "default:dry_dirt_with_dry_grass"} + spawn_by = {"group:dry_grass"} +end + +if minetest.get_modpath("ethereal") then + spawn_on = {"ethereal:mushroom_dirt"} + spawn_by = {"flowers:mushroom_brown", "flowers:mushroom_red"} +end + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "mobs_animal:pumba", + nodes = spawn_on, + neighbors = spawn_by, + min_light = 14, + interval = 60, + chance = 8000, -- 15000 + min_height = 0, + max_height = 200, + day_toggle = true, +}) +end + +mobs:register_egg("mobs_animal:pumba", S("Warthog"), "mobs_pumba_inv.png") + + +mobs:alias_mob("mobs:pumba", "mobs_animal:pumba") -- compatibility + + +-- raw porkchop +minetest.register_craftitem(":mobs:pork_raw", { + description = S("Raw Porkchop"), + inventory_image = "mobs_pork_raw.png", + on_use = minetest.item_eat(4), + groups = {food_meat_raw = 1, food_pork_raw = 1, flammable = 2}, +}) + +-- cooked porkchop +minetest.register_craftitem(":mobs:pork_cooked", { + description = S("Cooked Porkchop"), + inventory_image = "mobs_pork_cooked.png", + on_use = minetest.item_eat(8), + groups = {food_meat = 1, food_pork = 1, flammable = 2}, +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:pork_cooked", + recipe = "mobs:pork_raw", + cooktime = 5, +})