commit ecc70c6fe28cf4f697e4f88b6b42501dbadd03e4 Author: mckaygerhard Date: Sun Aug 6 16:27:12 2023 -0400 init the repo, starting with mobs_animal as base * this mod will be a reduced version of most mobs, to be more light and reduced for media stream on mobiles diff --git a/bee.lua b/bee.lua new file mode 100644 index 0000000..310d1e2 --- /dev/null +++ b/bee.lua @@ -0,0 +1,216 @@ + +local S = mobs.intllib_animal + + +-- Bee by KrupnoPavel (.b3d model by sirrobzeroone) + +mobs:register_mob("mobs_animal:bee", { + type = "animal", + passive = true, + hp_min = 1, + hp_max = 2, + armor = 200, + collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.5, 0.2}, + visual = "mesh", + mesh = "mobs_bee.b3d", + textures = { + {"mobs_bee.png"} + }, + blood_texture = "mobs_bee_inv.png", + blood_amount = 1, + makes_footstep_sound = false, + sounds = { + random = "mobs_bee" + }, + walk_velocity = 1, + jump = true, + drops = { + {name = "mobs:honey", chance = 2, min = 1, max = 2} + }, + water_damage = 1, + lava_damage = 2, + light_damage = 0, + fall_damage = 0, + fall_speed = -3, + animation = { + speed_normal = 15, + stand_start = 0, + stand_end = 30, + walk_start = 35, + walk_end = 65 + }, + + on_rightclick = function(self, clicker) + mobs:capture_mob(self, clicker, 50, 90, 0, true, "mobs_animal:bee") + end, + +-- after_activate = function(self, staticdata, def, dtime) +-- print ("------", self.name, dtime, self.health) +-- end, +}) + +if not mobs.custom_spawn_animal then + + 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 + }) +end + + +-- spawn egg +mobs:register_egg("mobs_animal:bee", S("Bee"), "mobs_bee_inv.png") + + +-- compatibility (only required if moving from old mobs to mobs_redo) +mobs:alias_mob("mobs:bee", "mobs_animal:bee") + + +-- honey +minetest.register_craftitem(":mobs:honey", { + description = S("Honey"), + inventory_image = "mobs_honey_inv.png", + on_use = minetest.item_eat(4), + groups = {food_honey = 1, food_sugar = 1, flammable = 1} +}) + + +-- beehive (when placed spawns bee) +minetest.register_node(":mobs:beehive", { + description = S("Beehive"), + drawtype = "plantlike", + tiles = {"mobs_beehive.png"}, + inventory_image = "mobs_beehive.png", + paramtype = "light", + sunlight_propagates = true, + walkable = true, + groups = {oddly_breakable_by_hand = 3, flammable = 1, disable_suffocation = 1}, + sounds = default and default.node_sound_defaults(), + + on_construct = function(pos) + + local meta = minetest.get_meta(pos) + local gui_bg = default and default.gui_bg .. default.gui_bg_img .. default.gui_slots or "" + + meta:set_string("formspec", "size[8,6]" + .. gui_bg + .. "image[3,0.8;0.8,0.8;mobs_bee_inv.png]" + .. "list[current_name;beehive;4,0.5;1,1;]" + .. "list[current_player;main;0,2.35;8,4;]" + .. "listring[]") + + meta:get_inventory():set_size("beehive", 1) + end, + + after_place_node = function(pos, placer, itemstack) + + if placer and placer:is_player() then + + minetest.set_node(pos, {name = "mobs:beehive", param2 = 1}) + + if math.random(4) == 1 then + minetest.add_entity(pos, "mobs_animal:bee") + end + end + end, + + on_punch = function(pos, node, puncher) + + -- yep, bee's don't like having their home punched by players + puncher:set_hp(puncher:get_hp() - 4) + end, + + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + + if listname == "beehive" then + return 0 + end + + return stack:get_count() + end, + + can_dig = function(pos,player) + + local meta = minetest.get_meta(pos) + + -- only dig beehive if no honey inside + return meta:get_inventory():is_empty("beehive") + end +}) + +-- beehive recipe +minetest.register_craft({ + output = "mobs:beehive", + recipe = { + {"mobs:bee","mobs:bee","mobs:bee"} + } +}) + +-- honey block +minetest.register_node(":mobs:honey_block", { + description = S("Honey Block"), + tiles = {"mobs_honey_block.png"}, + groups = {snappy = 3, flammable = 2}, + sounds = default and default.node_sound_dirt_defaults() +}) + +-- recipe +minetest.register_craft({ + output = "mobs:honey_block", + recipe = { + {"mobs:honey", "mobs:honey", "mobs:honey"}, + {"mobs:honey", "mobs:honey", "mobs:honey"}, + {"mobs:honey", "mobs:honey", "mobs:honey"} + } +}) + +minetest.register_craft({ + output = "mobs:honey 9", + recipe = { + {"mobs:honey_block"} + } +}) + + +-- beehive workings +minetest.register_abm({ + nodenames = {"mobs:beehive"}, + interval = 12, + chance = 6, + catch_up = false, + action = function(pos, node) + + -- bee's only make honey during the day + local tod = (minetest.get_timeofday() or 0) * 24000 + + if tod < 5500 or tod > 18500 then + return + end + + -- is hive full? + local meta = minetest.get_meta(pos) + if not meta then return end -- for older beehives + local inv = meta:get_inventory() + local honey = inv:get_stack("beehive", 1):get_count() + + -- is hive full? + if honey > 11 then + return + end + + -- no flowers no honey, nuff said! + if #minetest.find_nodes_in_area_under_air( + {x = pos.x - 4, y = pos.y - 3, z = pos.z - 4}, + {x = pos.x + 4, y = pos.y + 3, z = pos.z + 4}, + "group:flower") > 3 then + + inv:add_item("beehive", "mobs:honey") + end + end +}) diff --git a/bunny.lua b/bunny.lua new file mode 100644 index 0000000..545e2f8 --- /dev/null +++ b/bunny.lua @@ -0,0 +1,200 @@ + +local S = mobs.intllib_animal + + +-- Bunny by ExeterDad + +mobs:register_mob("mobs_animal:bunny", { + type = "animal", + passive = true, + reach = 1, + stepheight = 0.6, + hp_min = 1, + hp_max = 4, + armor = 200, + collisionbox = {-0.268, -0.5, -0.268, 0.268, 0.167, 0.268}, + visual = "mesh", + mesh = "mobs_bunny.b3d", + drawtype = "front", + textures = { + {"mobs_bunny_grey.png"}, + {"mobs_bunny_brown.png"}, + {"mobs_bunny_white.png"} + }, + sounds = {}, + makes_footstep_sound = false, + walk_velocity = 1, + run_velocity = 2, + runaway = true, + runaway_from = {"mobs_animal:pumba", "player"}, + jump = true, + jump_height = 6, + drops = { + {name = "mobs:rabbit_raw", chance = 1, min = 1, max = 1}, + {name = "mobs:rabbit_hide", chance = 1, min = 0, max = 1} + }, + water_damage = 0.01, + lava_damage = 4, + light_damage = 0, + fear_height = 2, + animation = { + speed_normal = 15, + stand_start = 1, + stand_end = 15, + walk_start = 16, + walk_end = 24, + punch_start = 16, + punch_end = 24 + }, + follow = {"farming:carrot", "farming_plus:carrot_item", "default:grass_1"}, + view_range = 8, + replace_rate = 10, + replace_what = {"farming:carrot_7", "farming:carrot_8", "farming_plus:carrot"}, + replace_with = "air", + + on_rightclick = function(self, clicker) + + -- feed or tame + if mobs:feed_tame(self, clicker, 4, true, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 30, 50, 80, false, nil) then return end + + -- Monty Python tribute + local item = clicker:get_wielded_item() + local player_name = clicker:get_player_name() + + if self.owner == player_name + and item:get_name() == "mobs:lava_orb" then + + -- take orb + if not mobs.is_creative(clicker:get_player_name()) then + item:take_item() + clicker:set_wielded_item(item) + end + + -- set special bunny attributes + local staticdata = minetest.serialize({ + type = "monster", + attack_type = "dogfight", + hp_max = 20, + health = 20, + damage = 5, + run_velocity = 3, + passive = false, + runaway = false, + runaway_from = {}, + runaway_timer = 0, + tamed = false, + base_texture = {"mobs_bunny_evil.png"} + }) + + -- add evil bunny + local obj = minetest.add_entity( + self.object:get_pos(), "mobs_animal:bunny", staticdata) + + -- remove old bunny + if obj:get_luaentity() then + mobs:remove(self, true) + end + end + end, + + on_spawn = function(self) + + local pos = self.object:get_pos() ; pos.y = pos.y - 1 + + -- white snowy bunny + if minetest.find_node_near(pos, 1, + {"default:snow", "default:snowblock", "default:dirt_with_snow"}) then + self.base_texture = {"mobs_bunny_white.png"} + self.object:set_properties({textures = self.base_texture}) + + -- brown desert bunny + elseif minetest.find_node_near(pos, 1, + {"default:desert_sand", "default:desert_stone"}) then + self.base_texture = {"mobs_bunny_brown.png"} + self.object:set_properties({textures = self.base_texture}) + + -- grey stone bunny + elseif minetest.find_node_near(pos, 1, + {"default:stone", "default:gravel"}) then + self.base_texture = {"mobs_bunny_grey.png"} + self.object:set_properties({textures = self.base_texture}) + end + + return true -- run only once, false/nil runs every activation + end +}) + + +local spawn_on = "default:dirt_with_grass" + +if minetest.get_modpath("ethereal") then + spawn_on = "ethereal:prairie_dirt" +end + +if not mobs.custom_spawn_animal then + + mobs:spawn({ + name = "mobs_animal:bunny", + nodes = {spawn_on}, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 8000, + min_height = 5, + max_height = 200, + day_toggle = true + }) +end + + +mobs:register_egg("mobs_animal:bunny", S("Bunny"), "mobs_bunny_inv.png", 0) + + +mobs:alias_mob("mobs:bunny", "mobs_animal:bunny") -- compatibility + + +-- raw rabbit +minetest.register_craftitem(":mobs:rabbit_raw", { + description = S("Raw Rabbit"), + inventory_image = "mobs_rabbit_raw.png", + on_use = minetest.item_eat(3), + groups = {food_meat_raw = 1, food_rabbit_raw = 1, flammable = 2} +}) + +-- cooked rabbit +minetest.register_craftitem(":mobs:rabbit_cooked", { + description = S("Cooked Rabbit"), + inventory_image = "mobs_rabbit_cooked.png", + on_use = minetest.item_eat(5), + groups = {food_meat = 1, food_rabbit = 1, flammable = 2} +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:rabbit_cooked", + recipe = "mobs:rabbit_raw", + cooktime = 5 +}) + +-- rabbit hide +minetest.register_craftitem(":mobs:rabbit_hide", { + description = S("Rabbit Hide"), + inventory_image = "mobs_rabbit_hide.png", + groups = {flammable = 2, pelt = 1} +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:rabbit_hide", + burntime = 2 +}) + +minetest.register_craft({ + output = "mobs:leather", + recipe = { + {"mobs:rabbit_hide", "mobs:rabbit_hide"}, + {"mobs:rabbit_hide", "mobs:rabbit_hide"} + } +}) diff --git a/chicken.lua b/chicken.lua new file mode 100644 index 0000000..d0fe7c2 --- /dev/null +++ b/chicken.lua @@ -0,0 +1,297 @@ + +local S = mobs.intllib_animal + + +-- Chicken by JK Murray and Sirrobzeroone + +mobs:register_mob("mobs_animal:chicken", { + stepheight = 0.6, + type = "animal", + passive = true, + hp_min = 5, + hp_max = 10, + armor = 200, + collisionbox = {-0.3, -0.75, -0.3, 0.3, 0.1, 0.3}, + visual = "mesh", + mesh = "mobs_chicken.b3d", + textures = { + {"mobs_chicken.png"}, -- white + {"mobs_chicken_brown.png"}, + {"mobs_chicken_black.png"} + }, + child_texture = { + {"mobs_chick.png"} + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_chicken" + }, + walk_velocity = 1, + run_velocity = 3, + runaway = true, + runaway_from = {"player", "mobs_animal:pumba"}, + drops = { + {name = "mobs:chicken_raw", chance = 1, min = 1, max = 1}, + {name = "mobs:chicken_feather", chance = 1, min = 0, max = 2} + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + fall_damage = 0, + fall_speed = -4, + fear_height = 5, + animation = { + speed_normal = 15, + stand_start = 1, + stand_end = 30, + stand_speed = 28, + stand1_start = 31, + stand1_end = 70, + stand1_speed = 32, + walk_start = 71, + walk_end = 90, + walk_speed = 24, + run_start = 91, + run_end = 110, + run_speed = 24 + }, + follow = { + "farming:seed_wheat", "farming:seed_cotton", "farming:seed_barley", + "farming:seed_oat", "farming:seed_rye" + }, + view_range = 5, + + 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, 30, 50, 80, false, nil) then return end + end, + + do_custom = function(self, dtime) + + self.egg_timer = (self.egg_timer or 0) + dtime + if self.egg_timer < 10 then + return + end + self.egg_timer = 0 + + if self.child + or math.random(100) > 1 then + return + end + + local pos = self.object:get_pos() ; if not pos then return end + + minetest.add_item(pos, "mobs:egg") + + minetest.sound_play("default_place_node_hard", { + pos = pos, + gain = 1.0, + max_hear_distance = 5 + }) + end +}) + + +local spawn_on = {"default:dirt_with_grass"} + +if minetest.get_modpath("ethereal") then + spawn_on = {"ethereal:bamboo_dirt", "ethereal:prairie_dirt"} +end + + +if not mobs.custom_spawn_animal then + + mobs:spawn({ + name = "mobs_animal:chicken", + nodes = spawn_on, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 8000, + min_height = 5, + max_height = 200, + day_toggle = true + }) +end + + +mobs:register_egg("mobs_animal:chicken", S("Chicken"), "mobs_chicken_inv.png", 0) + + +mobs:alias_mob("mobs:chicken", "mobs_animal:chicken") -- compatibility + + +-- egg entity + +mobs:register_arrow("mobs_animal:egg_entity", { + visual = "sprite", + visual_size = {x=.5, y=.5}, + textures = {"mobs_chicken_egg.png"}, + velocity = 6, + + hit_player = function(self, player) + player:punch(minetest.get_player_by_name(self.playername) or self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = 1} + }, nil) + end, + + hit_mob = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = 1} + }, nil) + end, + + hit_node = function(self, pos, node) + + if math.random(10) > 1 then + return + end + + pos.y = pos.y + 1 + + local nod = minetest.get_node_or_nil(pos) + + if not nod + or not minetest.registered_nodes[nod.name] + or minetest.registered_nodes[nod.name].walkable == true then + return + end + + local staticdata = minetest.serialize( + {child = true, tamed = true, owner = self.playername}) + + minetest.add_entity(pos, "mobs_animal:chicken", staticdata) + end +}) + + +-- egg throwing item + +local egg_GRAVITY = 9 +local egg_VELOCITY = 19 + +-- shoot egg +local mobs_shoot_egg = function (item, player, pointed_thing) + + local playerpos = player:get_pos() + + minetest.sound_play("default_place_node_hard", { + pos = playerpos, + gain = 1.0, + max_hear_distance = 5 + }) + + local obj = minetest.add_entity({ + x = playerpos.x, + y = playerpos.y +1.5, + z = playerpos.z + }, "mobs_animal:egg_entity") + + local ent = obj:get_luaentity() + local dir = player:get_look_dir() + + ent.velocity = egg_VELOCITY -- needed for api internal timing + ent.switch = 1 -- needed so that egg doesn't despawn straight away + ent._is_arrow = true -- tell advanced mob protection this is an arrow + + obj:set_velocity({ + x = dir.x * egg_VELOCITY, + y = dir.y * egg_VELOCITY, + z = dir.z * egg_VELOCITY + }) + + obj:set_acceleration({ + x = dir.x * -3, + y = -egg_GRAVITY, + z = dir.z * -3 + }) + + -- pass player name to egg for chick ownership + local ent2 = obj:get_luaentity() + + ent2.playername = player:get_player_name() + + item:take_item() + + return item +end + + +-- egg +minetest.register_node(":mobs:egg", { + description = S("Chicken Egg"), + tiles = {"mobs_chicken_egg.png"}, + inventory_image = "mobs_chicken_egg.png", + visual_scale = 0.7, + drawtype = "plantlike", + wield_image = "mobs_chicken_egg.png", + paramtype = "light", + walkable = false, + is_ground_content = true, + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} + }, + groups = {food_egg = 1, snappy = 2, dig_immediate = 3}, + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.set_node(pos, {name = "mobs:egg", param2 = 1}) + end + end, + on_use = mobs_shoot_egg +}) + + +-- fried egg +minetest.register_craftitem(":mobs:chicken_egg_fried", { + description = S("Fried Egg"), + inventory_image = "mobs_chicken_egg_fried.png", + on_use = minetest.item_eat(2), + groups = {food_egg_fried = 1, flammable = 2} +}) + +minetest.register_craft({ + type = "cooking", + recipe = "mobs:egg", + output = "mobs:chicken_egg_fried" +}) + +-- raw chicken +minetest.register_craftitem(":mobs:chicken_raw", { + description = S("Raw Chicken"), + inventory_image = "mobs_chicken_raw.png", + on_use = minetest.item_eat(2), + groups = {food_meat_raw = 1, food_chicken_raw = 1, flammable = 2} +}) + +-- cooked chicken +minetest.register_craftitem(":mobs:chicken_cooked", { + description = S("Cooked Chicken"), + inventory_image = "mobs_chicken_cooked.png", + on_use = minetest.item_eat(6), + groups = {food_meat = 1, food_chicken = 1, flammable = 2} +}) + +minetest.register_craft({ + type = "cooking", + recipe = "mobs:chicken_raw", + output = "mobs:chicken_cooked" +}) + +-- feather +minetest.register_craftitem(":mobs:chicken_feather", { + description = S("Feather"), + inventory_image = "mobs_chicken_feather.png", + groups = {flammable = 2, feather = 1} +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:chicken_feather", + burntime = 1 +}) diff --git a/cow.lua b/cow.lua new file mode 100644 index 0000000..9e4d57c --- /dev/null +++ b/cow.lua @@ -0,0 +1,319 @@ + +local S = mobs.intllib_animal + + +-- Cow by sirrobzeroone + +mobs:register_mob("mobs_animal:cow", { + type = "animal", + passive = false, + attack_type = "dogfight", + attack_npcs = false, + reach = 2, + damage = 4, + hp_min = 5, + hp_max = 20, + armor = 200, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.2, 0.4}, + visual = "mesh", + mesh = "mobs_cow.b3d", + textures = { + {"mobs_cow.png"}, + {"mobs_cow2.png"} + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_cow", + }, + walk_velocity = 1, + run_velocity = 2, + jump = true, + jump_height = 6, + pushable = true, + drops = { + {name = "mobs:meat_raw", chance = 1, min = 1, max = 3}, + {name = "mobs:leather", chance = 1, min = 0, max = 2} + }, + water_damage = 0.01, + lava_damage = 5, + light_damage = 0, + animation = { + stand_start = 0, + stand_end = 30, + stand_speed = 20, + stand1_start = 35, + stand1_end = 75, + stand1_speed = 20, + walk_start = 85, + walk_end = 114, + walk_speed = 20, + run_start = 120, + run_end = 140, + run_speed = 30, + punch_start = 145, + punch_end = 160, + punch_speed = 20, + die_start = 165, + die_end = 185, + die_speed = 10, + die_loop = false + }, + follow = { + "farming:wheat", "default:grass_1", "farming:barley", + "farming:oat", "farming:rye" + }, + view_range = 8, + replace_rate = 10, + replace_what = { + {"group:grass", "air", 0}, + {"default:dirt_with_grass", "default:dirt", -1} + }, +-- stay_near = {{"farming:straw", "group:grass"}, 10}, + fear_height = 2, + + on_rightclick = function(self, clicker) + + -- feed or tame + if mobs:feed_tame(self, clicker, 8, true, true) then + + -- if fed 7x wheat or grass then cow can be milked again + if self.food and self.food > 6 then + self.gotten = false + end + + return + end + + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 0, 5, 60, false, nil) then return end + + local tool = clicker:get_wielded_item() + local name = clicker:get_player_name() + local item = tool:get_name() + + -- milk cow with empty bucket + if item == "bucket:bucket_empty" + or item == "wooden_bucket:bucket_wood_empty" + or item == "bucket_wooden:bucket_empty" then + + --if self.gotten == true + if self.child == true then + return + end + + if self.gotten == true then + + minetest.chat_send_player(name, S("Cow already milked!")) + + return + end + + local inv = clicker:get_inventory() + + tool:take_item() + clicker:set_wielded_item(tool) + + -- which bucket are we using + local ret_item = "mobs:bucket_milk" + + if item == "wooden_bucket:bucket_wood_empty" + or item == "bucket_wooden:bucket_empty" then + ret_item = "mobs:wooden_bucket_milk" + end + + if inv:room_for_item("main", {name = ret_item}) then + clicker:get_inventory():add_item("main", ret_item) + else + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + minetest.add_item(pos, {name = ret_item}) + end + + self.gotten = true -- milked + + return + end + end, + + on_replace = function(self, pos, oldnode, newnode) + + self.food = (self.food or 0) + 1 + + -- if cow replaces 8x grass then it can be milked again + if self.food >= 8 then + self.food = 0 + self.gotten = false + end + end +}) + + +if not mobs.custom_spawn_animal then + + 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 + }) +end + + +mobs:register_egg("mobs_animal:cow", S("Cow"), "mobs_cow_inv.png") + + +mobs:alias_mob("mobs:cow", "mobs_animal:cow") -- compatibility + + +-- bucket of milk +minetest.register_craftitem(":mobs:bucket_milk", { + description = S("Bucket of Milk"), + inventory_image = "mobs_bucket_milk.png", + stack_max = 1, + on_use = minetest.item_eat(8, "bucket:bucket_empty"), + groups = {food_milk = 1, flammable = 3, drink = 1} +}) + +-- glass of milk +minetest.register_craftitem(":mobs:glass_milk", { + description = S("Glass of Milk"), + inventory_image = "mobs_glass_milk.png", + on_use = minetest.item_eat(2, "vessels:drinking_glass"), + groups = {food_milk_glass = 1, flammable = 3, vessel = 1, drink = 1} +}) + +minetest.register_craft({ + output = "mobs:glass_milk 4", + recipe = { + {"vessels:drinking_glass", "vessels:drinking_glass"}, + {"vessels:drinking_glass", "vessels:drinking_glass"}, + {"mobs:bucket_milk", ""} + }, + replacements = {{"mobs:bucket_milk", "bucket:bucket_empty"}} +}) + +minetest.register_craft({ + output = "mobs:bucket_milk", + recipe = { + {"group:food_milk_glass", "group:food_milk_glass"}, + {"group:food_milk_glass", "group:food_milk_glass"}, + {"bucket:bucket_empty", ""} + }, + replacements = { + {"group:food_milk_glass", "vessels:drinking_glass 4"} + } +}) + + +-- butter +minetest.register_craftitem(":mobs:butter", { + description = S("Butter"), + inventory_image = "mobs_butter.png", + on_use = minetest.item_eat(1), + groups = {food_butter = 1, flammable = 2} +}) + +local salt_item = "default:sapling" -- some saplings are high in sodium + +if minetest.get_modpath("farming") and farming and farming.mod then + salt_item = "farming:salt" +end + +minetest.register_craft({ + output = "mobs:butter", + recipe = {{"mobs:bucket_milk", salt_item}}, + replacements = {{"mobs:bucket_milk", "bucket:bucket_empty"}} +}) + +-- cheese wedge +minetest.register_craftitem(":mobs:cheese", { + description = S("Cheese"), + inventory_image = "mobs_cheese.png", + on_use = minetest.item_eat(4), + groups = {food_cheese = 1, flammable = 2} +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:cheese", + recipe = "mobs:bucket_milk", + cooktime = 5, + replacements = {{"mobs:bucket_milk", "bucket:bucket_empty"}} +}) + +-- cheese block +minetest.register_node(":mobs:cheeseblock", { + description = S("Cheese Block"), + tiles = {"mobs_cheeseblock.png"}, + is_ground_content = false, + groups = {oddly_breakable_by_hand = 3}, + sounds = default and default.node_sound_dirt_defaults() +}) + +minetest.register_craft({ + output = "mobs:cheeseblock", + recipe = { + {"group:food_cheese", "group:food_cheese", "group:food_cheese"}, + {"group:food_cheese", "group:food_cheese", "group:food_cheese"}, + {"group:food_cheese", "group:food_cheese", "group:food_cheese"} + } +}) + +minetest.register_craft({ + output = "mobs:cheese 9", + recipe = {{"mobs:cheeseblock"}} +}) + + +-- check for either of the wood bucket mods and add compatibility +local wb = minetest.get_modpath("wooden_bucket") +local bw = minetest.get_modpath("bucket_wooden") + +if wb or bw then + + local return_item = wb and "wooden_bucket:bucket_wood_empty" + or "bucket_wooden:bucket_empty" + + minetest.register_craftitem(":mobs:wooden_bucket_milk", { + description = S("Wooden Bucket of Milk"), + inventory_image = "mobs_wooden_bucket_milk.png", + stack_max = 1, + on_use = minetest.item_eat(8, return_item), + groups = {food_milk = 1, flammable = 3, drink = 1} + }) + + minetest.register_craft({ + output = "mobs:glass_milk 4", + recipe = { + {"vessels:drinking_glass", "vessels:drinking_glass"}, + {"vessels:drinking_glass", "vessels:drinking_glass"}, + {"mobs:wooden_bucket_milk", ""} + }, + replacements = {{"mobs:wooden_bucket_milk", return_item}} + }) + + minetest.register_craft({ + output = "mobs:wooden_bucket_milk", + recipe = { + {"group:food_milk_glass", "group:food_milk_glass"}, + {"group:food_milk_glass", "group:food_milk_glass"}, + {return_item, ""} + }, + replacements = { + {"group:food_milk_glass", "vessels:drinking_glass 4"} + } + }) + + minetest.register_craft({ + output = "mobs:butter", + recipe = {{"mobs:wooden_bucket_milk", salt_item}}, + replacements = {{"mobs:wooden_bucket_milk", return_item}} + }) +end diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..6eca2d8 --- /dev/null +++ b/depends.txt @@ -0,0 +1,4 @@ +mobs +default? +lucky_block? +intllib? diff --git a/description.txt b/description.txt new file mode 100644 index 0000000..85afccd --- /dev/null +++ b/description.txt @@ -0,0 +1 @@ +Adds farm animals. \ No newline at end of file diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..f97df1d --- /dev/null +++ b/init.lua @@ -0,0 +1,64 @@ +local path = minetest.get_modpath(minetest.get_current_modname()) .. "/" + +-- Check for translation method +local S + +if minetest.get_translator ~= nil then + S = minetest.get_translator("mobs_animal") -- 5.x translation function +else + if minetest.get_modpath("intllib") then + dofile(minetest.get_modpath("intllib").."/init.lua") + if intllib.make_gettext_pair then + S = intllib.make_gettext_pair() -- new gettext method + else + S = intllib.Getter() -- old text file method + end + else -- boilerplate function + S = function(str, ...) + local args = {...} + return str:gsub("@%d+", function(match) + return args[tonumber(match:sub(2))] + end) + end + end +end + +mobs.intllib_animal = S + + +-- Check for custom mob spawn file +local input = io.open(path .. "spawn.lua", "r") + +if input then + mobs.custom_spawn_animal = true + input:close() + input = nil +end + + +-- Animals +dofile(path .. "chicken.lua") -- JKmurray +dofile(path .. "cow.lua") -- KrupnoPavel +dofile(path .. "rat.lua") -- PilzAdam +dofile(path .. "sheep.lua") -- PilzAdam +dofile(path .. "warthog.lua") -- KrupnoPavel +dofile(path .. "bee.lua") -- KrupnoPavel +dofile(path .. "bunny.lua") -- ExeterDad +dofile(path .. "kitten.lua") -- Jordach/BFD +dofile(path .. "penguin.lua") -- D00Med +dofile(path .. "panda.lua") -- AspireMint + + +-- Load custom spawning +if mobs.custom_spawn_animal then + dofile(path .. "spawn.lua") +end + + +-- Lucky Blocks +if minetest.get_modpath("lucky_block") then + dofile(path .. "lucky_block.lua") +end + + +print ("[MOD] Mobs Redo Animals loaded") diff --git a/kitten.lua b/kitten.lua new file mode 100644 index 0000000..a2bb7ee --- /dev/null +++ b/kitten.lua @@ -0,0 +1,198 @@ + +local S = mobs.intllib_animal +local hairball = minetest.settings:get("mobs_hairball") + +local kitten_types = { + + { nodes = {"farming:jackolantern_on"}, + skins = {"mobs_kitten_black.png"} + } +} + +-- Kitten by Jordach / BFD + +mobs:register_mob("mobs_animal:kitten", { + stepheight = 0.6, + type = "animal", + specific_attack = {"mobs_animal:rat"}, + damage = 1, + attack_type = "dogfight", + attack_animals = true, -- so it can attack rat + attack_players = false, + reach = 1, + stepheight = 1.1, + passive = false, + hp_min = 5, + hp_max = 10, + armor = 200, + collisionbox = {-0.3, -0.3, -0.3, 0.3, 0.1, 0.3}, + visual = "mesh", + visual_size = {x = 0.5, y = 0.5}, + mesh = "mobs_kitten.b3d", + textures = { + {"mobs_kitten_striped.png"}, + {"mobs_kitten_splotchy.png"}, + {"mobs_kitten_ginger.png"}, + {"mobs_kitten_sandy.png"} + }, + makes_footstep_sound = false, + sounds = { + random = "mobs_kitten" + }, + walk_velocity = 0.6, + walk_chance = 15, + run_velocity = 2, + runaway = true, + jump = false, + drops = { + {name = "farming:string", chance = 1, min = 0, max = 1} + }, + water_damage = 0.01, + lava_damage = 5, + fear_height = 3, + animation = { + speed_normal = 42, + stand_start = 97, + stand_end = 192, + walk_start = 0, + walk_end = 96, + stoodup_start = 0, + stoodup_end = 0, + }, + follow = { + "mobs_animal:rat", "group:food_fish_raw", + "mobs_fish:tropical", "mobs_fish:clownfish", "xocean:fish_edible" + }, + view_range = 8, + + -- check surrounding nodes and spawn a specific kitten + on_spawn = function(self) + + local pos = self.object:get_pos() ; pos.y = pos.y - 1 + local tmp + + for n = 1, #kitten_types do + + tmp = kitten_types[n] + + if minetest.find_node_near(pos, 1, tmp.nodes) then + + self.base_texture = tmp.skins + self.object:set_properties({textures = tmp.skins}) + + return true + end + end + + return true -- run only once, false/nil runs every activation + end, + + on_rightclick = function(self, clicker) + + if mobs:feed_tame(self, clicker, 4, true, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 50, 50, 90, false, nil) then return end + + -- by right-clicking owner can switch between staying and walking + if self.owner and self.owner == clicker:get_player_name() then + + if self.order ~= "stand" then + self.order = "stand" + self.state = "stand" + self.object:set_velocity({x = 0, y = 0, z = 0}) + mobs:set_animation(self, "stand") + else + self.order = "" + mobs:set_animation(self, "stoodup") + end + end + end, + + do_custom = function(self, dtime) + + if hairball == "false" then + return + end + + self.hairball_timer = (self.hairball_timer or 0) + dtime + if self.hairball_timer < 10 then + return + end + self.hairball_timer = 0 + + if self.child or math.random(250) > 1 then + return + end + + local pos = self.object:get_pos() + + minetest.add_item(pos, "mobs:hairball") + + minetest.sound_play("default_dig_snappy", { + pos = pos, gain = 1.0, max_hear_distance = 5}, true) + end +}) + + +local spawn_on = "default:dirt_with_grass" + +if minetest.get_modpath("ethereal") then + spawn_on = "ethereal:grove_dirt" +end + +if not mobs.custom_spawn_animal then + + mobs:spawn({ + name = "mobs_animal:kitten", + nodes = {spawn_on}, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 10000, + min_height = 5, + max_height = 50, + day_toggle = true + }) +end + + +mobs:register_egg("mobs_animal:kitten", S("Kitten"), "mobs_kitten_inv.png", 0) + + +mobs:alias_mob("mobs:kitten", "mobs_animal:kitten") -- compatibility + + +local hairball_items = { + "default:stick", "default:coal_lump", "default:dry_shrub", "flowers:rose", + "mobs_animal:rat", "default:grass_1", "farming:seed_wheat", "dye:green", "", + "farming:seed_cotton", "default:flint", "default:sapling", "dye:white", "", + "default:clay_lump", "default:paper", "default:dry_grass_1", "dye:red", "", + "farming:string", "mobs:chicken_feather", "default:acacia_bush_sapling", "", + "default:bush_sapling", "default:copper_lump", "default:iron_lump", "", + "dye:black", "dye:brown", "default:obsidian_shard", "default:tin_lump", + "ethereal:fish_tetra" +} + +minetest.register_craftitem(":mobs:hairball", { + description = S("Hairball"), + inventory_image = "mobs_hairball.png", + on_use = function(itemstack, user, pointed_thing) + + local pos = user:get_pos() + local dir = user:get_look_dir() + local newpos = {x = pos.x + dir.x, y = pos.y + dir.y + 1.5, z = pos.z + dir.z} + local item = hairball_items[math.random(1, #hairball_items)] + + if item ~= "" + and minetest.registered_items[item] then + minetest.add_item(newpos, {name = item}) + end + + minetest.sound_play("default_place_node_hard", { + pos = newpos, gain = 1.0, max_hear_distance = 5}, true) + + itemstack:take_item() + + return itemstack + end +}) diff --git a/license.txt b/license.txt new file mode 100644 index 0000000..6c8b2c8 --- /dev/null +++ b/license.txt @@ -0,0 +1,101 @@ + +All my models (K Pavel) and change code on valid license The MIT License + + +The MIT License (MIT) + +Copyright (c) 2014 Krupnov Pavel and 2016 TenPlus1 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +Chicken/Cow/Panda/Pig/Sheep sounds from freesounds.org under CC0 + +Mutton, Pork and Rabbit meat textures by Piezo_ under CC0 + +mobs_panda_viking.png by Zlo under CC0 + +Models/Textures/Media by Krupnov Pavel (WTFPL) + mobs_rat.b3d + mobs_rat.png + mobs_sheep.b3d (converted to .b3d by sirrobzerrone) + mobs_stone_monster.b3d + mobs_stone_monster.png + mobs_dirt_monster.png + mobs_sand_monster.png + mobs_tree_monster.b3d + mobs_tree_monster.png + mobs_oerkki.b3d + mobs_oerkki.png + mobs_dungeon_master.b3d + mobs_dungeon_master.png + mobs_fireball.ogg + +Models/Textures by Krupno Pavel (MIT) + mobs_bee.b3d (converted to .b3d by sirrobzerrone) + mobs_bee.png + mobs_pumba.b3d (converted to .b3d by sirrobzerrone) + mobs_pumba.png + +Models/Textures by ExeterDad (CC0) + mobs_bunny.b3d + mobs_bunny_grey.png + mobs_bunny_brown.png + mobs_bunny_white.png + +Models/Textures by JK Murray (CC0) + mobs_chicken.b3d (converted to .b3d by sirrobzerrone) + mobs_chicken.png + mobs_chicken_brown.png + mobs_chicken_black.png + mobs_chick.png + +Models/Textures by sirrobzerrone (CC0) + mobs_cow.b3d + mobs_cow.png + mobs_cow2.png + +Models/Textures by Jordach/BFD (WTFPL) + mobs_kitten.b3d + mobs_kitten_striped.png + mobs_kitten_splotchy.png + mobs_kitten_ginger.png + mobs_kitten_sandy.png + +Sounds by lolamadeus (CC0) http://freesound.org/people/lolamadeus/sounds/196251/ + mobs_kitten.ogg + +Models/Textures by AspireMint (CC BY-SA 3.0) + mobs_panda.b3d + mobs_panda.png + +Models/Textures by D00Med (CC BY-SA 3.0) + mobs_penguin.b3d + mobs_penguin.png + +Textures by LithiumSound's Summer Field Texture Pack (CC BY-SA 4.0 NC ShareAlike International) + mobs_sheep_base.png + mobs_sheep_horns.png + mobs_sheep_shaved.png + mobs_sheep_wool.png [all edited by sirrobzeroone] + +Sounds by Cyberpangolin (WTFPL) https://forum.minetest.net/viewtopic.php?t=10798 + mobs_bee.ogg + mobs_spider.ogg + mobs_rat.ogg diff --git a/locale/README.md b/locale/README.md new file mode 100644 index 0000000..4887b9e --- /dev/null +++ b/locale/README.md @@ -0,0 +1,10 @@ +# Convert '.po' file to '.txt' file. + +### COMMAND SAMPLE +'''' +$ lua po2tr.lua "Your Name (Your Site) " "pt_BR.po" +rm "pt_BR.tr" "mobs_animal.pt_BR.tr" +$ cat mobs_animal.pt_BR.tr | less +'''' + +Source Code: https://gitlab.com/4w/xtend/-/blob/master/xtend_default/tools/convert_po_file_to_tr_file/convert_po_file_to_tr_file.lua diff --git a/locale/de.po b/locale/de.po new file mode 100644 index 0000000..cd6d85e --- /dev/null +++ b/locale/de.po @@ -0,0 +1,203 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 11:28+0200\n" +"PO-Revision-Date: 2016-06-10 08:58+0200\n" +"Last-Translator: Xanthin\n" +"Language-Team: \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.12\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: bee.lua +msgid "Bee" +msgstr "Biene" + +#: bee.lua +msgid "Honey" +msgstr "Honig" + +#: bee.lua +msgid "Beehive" +msgstr "Bienenstock" + +#: bee.lua +msgid "Honey Block" +msgstr "Honigblock" + +#: bunny.lua +msgid "Bunny" +msgstr "Häschen" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "Rohes Kaninchen" + +#: bunny.lua +msgid "Cooked Rabbit" +msgstr "Gekochtes Kaninchen" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "Kaninchenfell" + +#: chicken.lua +msgid "Chicken" +msgstr "Huhn" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "Hühnerei" + +#: chicken.lua +msgid "Fried Egg" +msgstr "Spiegelei" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "Rohes Hühnchen" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "Gekochtes Hühnchen" + +#: chicken.lua +#, fuzzy +msgid "Feather" +msgstr "Feder" + +#: cow.lua +msgid "Cow already milked!" +msgstr "Kuh ist bereits gemolken!" + +#: cow.lua +msgid "Cow" +msgstr "Kuh" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "Eimer Milch" + +#: cow.lua +msgid "Cheese" +msgstr "Käse" + +#: cow.lua +msgid "Cheese Block" +msgstr "Käseblock" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "[MOD] Mobs Redo 'Animals' geladen" + +#: kitten.lua +msgid "Kitten" +msgstr "Kätzchen" + +#: penguin.lua +#, fuzzy +msgid "Penguin" +msgstr "Pinguin" + +#: rat.lua +msgid "Rat" +msgstr "Ratte" + +#: rat.lua +msgid "Cooked Rat" +msgstr "Gekochte Ratte" + +#: sheep.lua +msgid "Black" +msgstr "Schwarzes" + +#: sheep.lua +msgid "Blue" +msgstr "Blaues" + +#: sheep.lua +msgid "Brown" +msgstr "Braunes" + +#: sheep.lua +msgid "Cyan" +msgstr "Cyan" + +#: sheep.lua +msgid "Dark Green" +msgstr "Dunkelgrünes" + +#: sheep.lua +msgid "Dark Grey" +msgstr "Dunkelgraues" + +#: sheep.lua +msgid "Green" +msgstr "Grünes" + +#: sheep.lua +msgid "Grey" +msgstr "Graues" + +#: sheep.lua +msgid "Magenta" +msgstr "Magenta" + +#: sheep.lua +msgid "Orange" +msgstr "Oranges" + +#: sheep.lua +msgid "Pink" +msgstr "Pinkes" + +#: sheep.lua +msgid "Red" +msgstr "Rotes" + +#: sheep.lua +msgid "Violet" +msgstr "Violettes" + +#: sheep.lua +msgid "White" +msgstr "Weißes" + +#: sheep.lua +msgid "Yellow" +msgstr "Gelbes" + +#: sheep.lua +#, fuzzy +msgid "@1 Sheep" +msgstr "@1 Schaf" + +#: sheep.lua +msgid "Raw Mutton" +msgstr "Rohes Hammelfleisch" + +#: sheep.lua +#, fuzzy +msgid "Cooked Mutton" +msgstr "Gekochtes Hammelfleisch" + +#: warthog.lua +msgid "Warthog" +msgstr "Warzenschwein" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "Rohes Schweinekotelett" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "Gekochtes Schweinekotelett" diff --git a/locale/fr.po b/locale/fr.po new file mode 100644 index 0000000..5c0d2f6 --- /dev/null +++ b/locale/fr.po @@ -0,0 +1,202 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 11:28+0200\n" +"PO-Revision-Date: 2017-07-31 09:18+0200\n" +"Last-Translator: fat115 \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.12\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: bee.lua +msgid "Bee" +msgstr "Abeille" + +#: bee.lua +msgid "Honey" +msgstr "Miel" + +#: bee.lua +msgid "Beehive" +msgstr "Ruche" + +#: bee.lua +msgid "Honey Block" +msgstr "Bloc de miel" + +#: bunny.lua +msgid "Bunny" +msgstr "Lapin" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "Lapin Cru" + +#: bunny.lua +#, fuzzy +msgid "Cooked Rabbit" +msgstr "Lapin Cuit" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "Fourrure de Lapin" + +#: chicken.lua +msgid "Chicken" +msgstr "Poule" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "Œuf" + +#: chicken.lua +msgid "Fried Egg" +msgstr "Œuf au plat" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "Poulet cru" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "Poulet cuit" + +#: chicken.lua +msgid "Feather" +msgstr "Plume" + +#: cow.lua +msgid "Cow already milked!" +msgstr "Vache déjà traite !" + +#: cow.lua +msgid "Cow" +msgstr "Vache" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "Seau de lait" + +#: cow.lua +msgid "Cheese" +msgstr "Fromage" + +#: cow.lua +msgid "Cheese Block" +msgstr "Bloc de fromage" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "[MOD] Mobs Redo 'Animals' chargé" + +#: kitten.lua +msgid "Kitten" +msgstr "Chaton" + +#: penguin.lua +msgid "Penguin" +msgstr "Manchot" + +#: rat.lua +msgid "Rat" +msgstr "Rat" + +#: rat.lua +msgid "Cooked Rat" +msgstr "Rat cuit" + +#: sheep.lua +msgid "Black" +msgstr "noir" + +#: sheep.lua +msgid "Blue" +msgstr "bleu" + +#: sheep.lua +msgid "Brown" +msgstr "marron" + +#: sheep.lua +msgid "Cyan" +msgstr "cyan" + +#: sheep.lua +msgid "Dark Green" +msgstr "vert foncé" + +#: sheep.lua +msgid "Dark Grey" +msgstr "gris foncé" + +#: sheep.lua +msgid "Green" +msgstr "vert" + +#: sheep.lua +msgid "Grey" +msgstr "gris" + +#: sheep.lua +msgid "Magenta" +msgstr "magenta" + +#: sheep.lua +msgid "Orange" +msgstr "orange" + +#: sheep.lua +msgid "Pink" +msgstr "rose" + +#: sheep.lua +msgid "Red" +msgstr "rouge" + +#: sheep.lua +msgid "Violet" +msgstr "violet" + +#: sheep.lua +msgid "White" +msgstr "blanc" + +#: sheep.lua +msgid "Yellow" +msgstr "jaune" + +#: sheep.lua +#, fuzzy +msgid "@1 Sheep" +msgstr "Mouton @1" + +#: sheep.lua +msgid "Raw Mutton" +msgstr "Mouton Cru" + +#: sheep.lua +#, fuzzy +msgid "Cooked Mutton" +msgstr "Mouton Cuit" + +#: warthog.lua +msgid "Warthog" +msgstr "Sanglier" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "Côte de sanglier crue" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "Côte de sanglier cuite" diff --git a/locale/it.po b/locale/it.po new file mode 100644 index 0000000..8982f93 --- /dev/null +++ b/locale/it.po @@ -0,0 +1,201 @@ +# ITALIAN LOCALE FILE FOR THE MOBS ANMAL MODULE +# Copyright (c) 2014 Krupnov Pavel and 2016 TenPlus1 +# This file is distributed under the same license as the MOBS ANIMAL package. +# Hamlet , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: Italian localization file for the Mobs Animal mod\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 11:28+0200\n" +"PO-Revision-Date: 2017-08-18 00:56+0100\n" +"Last-Translator: H4mlet \n" +"Language-Team: \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.10\n" + +#: bee.lua +msgid "Bee" +msgstr "Ape" + +#: bee.lua +msgid "Honey" +msgstr "Miele" + +#: bee.lua +msgid "Beehive" +msgstr "Favo" + +#: bee.lua +msgid "Honey Block" +msgstr "Blocco di miele" + +#: bunny.lua +msgid "Bunny" +msgstr "Coniglietto" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "Coniglio Crudo" + +#: bunny.lua +#, fuzzy +msgid "Cooked Rabbit" +msgstr "Coniglio Cotto" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "Pelle di Coniglio" + +#: chicken.lua +msgid "Chicken" +msgstr "Gallina" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "Uovo di gallina" + +#: chicken.lua +msgid "Fried Egg" +msgstr "Uovo fritto" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "Pollo crudo" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "Pollo cotto" + +#: chicken.lua +msgid "Feather" +msgstr "Piuma" + +#: cow.lua +msgid "Cow already milked!" +msgstr "Mucca già munta!" + +#: cow.lua +msgid "Cow" +msgstr "Mucca" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "Secchio di latte" + +#: cow.lua +msgid "Cheese" +msgstr "Formaggio" + +#: cow.lua +msgid "Cheese Block" +msgstr "Blocco di formaggio" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "[MOD] Mobs Redo 'Animals' caricato" + +#: kitten.lua +msgid "Kitten" +msgstr "Gattino" + +#: penguin.lua +msgid "Penguin" +msgstr "Pinguino" + +#: rat.lua +msgid "Rat" +msgstr "Ratto" + +#: rat.lua +msgid "Cooked Rat" +msgstr "Ratto cotto" + +#: sheep.lua +msgid "Black" +msgstr "Nera" + +#: sheep.lua +msgid "Blue" +msgstr "Blu" + +#: sheep.lua +msgid "Brown" +msgstr "Marrone" + +#: sheep.lua +msgid "Cyan" +msgstr "Ciano" + +#: sheep.lua +msgid "Dark Green" +msgstr "Verde scuro" + +#: sheep.lua +msgid "Dark Grey" +msgstr "Grigio scuro" + +#: sheep.lua +msgid "Green" +msgstr "Verde" + +#: sheep.lua +msgid "Grey" +msgstr "Grigia" + +#: sheep.lua +msgid "Magenta" +msgstr "Magenta" + +#: sheep.lua +msgid "Orange" +msgstr "Arancione" + +#: sheep.lua +msgid "Pink" +msgstr "Rosa" + +#: sheep.lua +msgid "Red" +msgstr "Rossa" + +#: sheep.lua +msgid "Violet" +msgstr "Viola" + +#: sheep.lua +msgid "White" +msgstr "Bianca" + +#: sheep.lua +msgid "Yellow" +msgstr "Gialla" + +#: sheep.lua +msgid "@1 Sheep" +msgstr "Pecora @1" + +#: sheep.lua +msgid "Raw Mutton" +msgstr "Montone Crudo" + +#: sheep.lua +#, fuzzy +msgid "Cooked Mutton" +msgstr "Montone Cotto" + +#: warthog.lua +msgid "Warthog" +msgstr "Facocero" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "Bistecca di maiale cruda" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "Bistecca di maiale cotta" diff --git a/locale/mobs_animal.de.tr b/locale/mobs_animal.de.tr new file mode 100644 index 0000000..b9a7f0e --- /dev/null +++ b/locale/mobs_animal.de.tr @@ -0,0 +1,50 @@ +# textdomain:mobs_animal +@1 Sheep=@1 Schaf +Bee=Biene +Beehive=Bienenstock +Black=Schwarzes +Blue=Blaues +Brown=Braunes +Bucket of Milk=Eimer Milch +Bunny=Häschen +#Butter= +Cheese=Käse +Cheese Block=Käseblock +Chicken=Huhn +Chicken Egg=Hühnerei +Cooked Chicken=Gekochtes Hühnchen +Cooked Mutton=Gekochtes Hammelfleisch +Cooked Porkchop=Gekochtes Schweinekotelett +Cooked Rabbit=Gekochtes Kaninchen +Cooked Rat=Gekochte Ratte +Cow=Kuh +Cow already milked!=Kuh ist bereits gemolken! +Cyan=Cyan +Dark Green=Dunkelgrünes +Dark Grey=Dunkelgraues +Feather=Feder +Fried Egg=Spiegelei +#Glass of Milk= +Green=Grünes +Grey=Graues +#Hairball= +Honey=Honig +Honey Block=Honigblock +Kitten=Kätzchen +Magenta=Magenta +Orange=Oranges +#Panda= +Penguin=Pinguin +Pink=Pinkes +Rabbit Hide=Kaninchenfell +Rat=Ratte +Raw Chicken=Rohes Hühnchen +Raw Mutton=Rohes Hammelfleisch +Raw Porkchop=Rohes Schweinekotelett +Raw Rabbit=Rohes Kaninchen +Red=Rotes +Violet=Violettes +Warthog=Warzenschwein +White=Weißes +Yellow=Gelbes +#[MOD] Mobs Redo Animals loaded= diff --git a/locale/mobs_animal.en.tr b/locale/mobs_animal.en.tr new file mode 100644 index 0000000..5a8a66a --- /dev/null +++ b/locale/mobs_animal.en.tr @@ -0,0 +1,50 @@ +# textdomain:mobs_animal +#@1 Sheep= +#Bee= +#Beehive= +#Black= +#Blue= +#Brown= +#Bucket of Milk= +#Bunny= +#Butter= +#Cheese= +#Cheese Block= +#Chicken= +#Chicken Egg= +#Cooked Chicken= +#Cooked Mutton= +#Cooked Porkchop= +#Cooked Rabbit= +#Cooked Rat= +#Cow= +#Cow already milked!= +#Cyan= +#Dark Green= +#Dark Grey= +#Feather= +#Fried Egg= +#Glass of Milk= +#Green= +#Grey= +#Hairball= +#Honey= +#Honey Block= +#Kitten= +#Magenta= +#Orange= +#Panda= +#Penguin= +#Pink= +#Rabbit Hide= +#Rat= +#Raw Chicken= +#Raw Mutton= +#Raw Porkchop= +#Raw Rabbit= +#Red= +#Violet= +#Warthog= +#White= +#Yellow= +#[MOD] Mobs Redo Animals loaded= diff --git a/locale/mobs_animal.es.tr b/locale/mobs_animal.es.tr new file mode 100644 index 0000000..c6e1028 --- /dev/null +++ b/locale/mobs_animal.es.tr @@ -0,0 +1,46 @@ +# textdomain: mobs_animal +Bee=Abeja +Honey=Miel +Beehive=Colmena +Honey Block=Bloque de Mel +Bunny=Conejo +Raw Rabbit=Carne de Conejo +Cooked Rabbit=Conejo Asado +Rabbit Hide=Conejo oculto +Chicken=Gallina +Chicken Egg=Huevo de Gallina +Fried Egg=Huevo Frito +Raw Chicken=Gallina cruda +Cooked Chicken=Gallina Asada +Feather=Pluma +Cow already milked!=Vaca ordeñada +Cow=Vaca +Bucket of Milk=Balde de leche +Cheese=Queso +Cheese Block=Bloque de queso +[MOD] Mobs Redo 'Animals' loaded=[MOD] Mobs redo Animals cargado +Kitten=Gato +Penguin=Pinguino +Rat=Raton +Cooked Rat=Raton Asado +Black=Negro +Blue=Azul +Brown=Marrom +Cyan=Cian +Dark Green=Verde Oscuro +Dark Grey=Gris Oscuro +Green=Verde +Grey=Gris +Magenta=Magenta +Orange=Naranja +Pink=Rosa +Red=Rojo +Violet=Violeta +White=Blanco +Yellow=Amarillo +@1 Sheep=Oveja @1 +Raw Mutton=Carnero crudo +Cooked Mutton=Carnero Assado +Warthog=Javali +Raw Porkchop=Costilla de Jabali crudo +Cooked Porkchop=Costilla de Javali Assada diff --git a/locale/mobs_animal.fr.tr b/locale/mobs_animal.fr.tr new file mode 100644 index 0000000..a954429 --- /dev/null +++ b/locale/mobs_animal.fr.tr @@ -0,0 +1,50 @@ +# textdomain:mobs_animal +@1 Sheep=Mouton @1 +Bee=Abeille +Beehive=Ruche +Black=noir +Blue=bleu +Brown=marron +Bucket of Milk=Seau de lait +Bunny=Lapin +Butter=Beurre +Cheese=Fromage +Cheese Block=Bloc de fromage +Chicken=Poule +Chicken Egg=Œuf +Cooked Chicken=Poulet cuit +Cooked Mutton=Mouton cuit +Cooked Porkchop=Côte de sanglier cuite +Cooked Rabbit=Lapin cuit +Cooked Rat=Rat cuit +Cow=Vache +Cow already milked!=Vache déjà traite ! +Cyan=cyan +Dark Green=vert foncé +Dark Grey=gris foncé +Feather=Plume +Fried Egg=Œuf au plat +Glass of Milk=Verre de lait +Green=vert +Grey=gris +Hairball=Boule de poils +Honey=Miel +Honey Block=Bloc de miel +Kitten=Chaton +Magenta=magenta +Orange=orange +Panda=Panda +Penguin=Manchot +Pink=rose +Rabbit Hide=Fourrure de lapin +Rat=Rat +Raw Chicken=Poulet cru +Raw Mutton=Mouton cru +Raw Porkchop=Côte de sanglier crue +Raw Rabbit=Lapin cru +Red=rouge +Violet=violet +Warthog=Sanglier +White=blanc +Yellow=jaune +[MOD] Mobs Redo Animals loaded=[MOD] Animaux «Mobs Redo» chargés diff --git a/locale/mobs_animal.it.tr b/locale/mobs_animal.it.tr new file mode 100644 index 0000000..2f40bec --- /dev/null +++ b/locale/mobs_animal.it.tr @@ -0,0 +1,50 @@ +# textdomain:mobs_animal +@1 Sheep=Pecora @1 +Bee=Ape +Beehive=Favo +Black=Nera +Blue=Blu +Brown=Marrone +Bucket of Milk=Secchio di latte +Bunny=Coniglietto +#Butter= +Cheese=Formaggio +Cheese Block=Blocco di formaggio +Chicken=Gallina +Chicken Egg=Uovo di gallina +Cooked Chicken=Pollo cotto +Cooked Mutton=Montone Cotto +Cooked Porkchop=Bistecca di maiale cotta +Cooked Rabbit=Coniglio Cotto +Cooked Rat=Ratto cotto +Cow=Mucca +Cow already milked!=Mucca già munta! +Cyan=Ciano +Dark Green=Verde scuro +Dark Grey=Grigio scuro +Feather=Piuma +Fried Egg=Uovo fritto +#Glass of Milk= +Green=Verde +Grey=Grigia +#Hairball= +Honey=Miele +Honey Block=Blocco di miele +Kitten=Gattino +Magenta=Magenta +Orange=Arancione +#Panda= +Penguin=Pinguino +Pink=Rosa +Rabbit Hide=Pelle di Coniglio +Rat=Ratto +Raw Chicken=Pollo crudo +Raw Mutton=Montone Crudo +Raw Porkchop=Bistecca di maiale cruda +Raw Rabbit=Coniglio Crudo +Red=Rossa +Violet=Viola +Warthog=Facocero +White=Bianca +Yellow=Gialla +#[MOD] Mobs Redo Animals loaded= diff --git a/locale/mobs_animal.ms.tr b/locale/mobs_animal.ms.tr new file mode 100644 index 0000000..09d72c4 --- /dev/null +++ b/locale/mobs_animal.ms.tr @@ -0,0 +1,50 @@ +# textdomain:mobs_animal +@1 Sheep=Biri-biri @1 +Bee=Lebah +Beehive=Sarang Lebah +Black=Hitam +Blue=Biru +Brown=Perang +Bucket of Milk=Baldi Susu +Bunny=Arnab +#Butter= +Cheese=Keju +Cheese Block=Blok Keju +Chicken=Ayam +Chicken Egg=Telur Ayam +Cooked Chicken=Ayam Bakar +Cooked Mutton=Daging Biri-biri Bakar +Cooked Porkchop=Daging Babi Bakar +Cooked Rabbit=Daging Arnab Bakar +Cooked Rat=Tikus Bakar +Cow=Lembu +Cow already milked!=Lembu telah diperah susunya! +Cyan=Sian +Dark Green=Hijau Gelap +Dark Grey=Kelabu Gelap +Feather=Bulu +Fried Egg=Telur Goreng +#Glass of Milk= +Green=Hijau +Grey=Kelabu +#Hairball= +Honey=Madu +Honey Block=Blok Madu +Kitten=Anak Kucing +Magenta=Merah Lembayung +Orange=Jingga +#Panda= +Penguin=Penguin +Pink=Merah Jambu +Rabbit Hide=Belulang Arnab +Rat=Tikus +Raw Chicken=Ayam Mentah +Raw Mutton=Daging Biri-biri Mentah +Raw Porkchop=Daging Babi Mentah +Raw Rabbit=Daging Arnab Mentah +Red=Merah +Violet=Ungu +Warthog=Babi Hutan +White=Putih +Yellow=Kuning +#[MOD] Mobs Redo Animals loaded= diff --git a/locale/mobs_animal.pt.tr b/locale/mobs_animal.pt.tr new file mode 100644 index 0000000..60d9f5c --- /dev/null +++ b/locale/mobs_animal.pt.tr @@ -0,0 +1,46 @@ +# textdomain: Lunovox Heavenfinder (https://libreplanet.org/wiki/User:Lunovox) +Bee=Abelha +Honey=Mel +Beehive=Colméia +Honey Block=Bloco de Mel +Bunny=Coelho +Raw Rabbit=Carne de Coelho (Cru) +Cooked Rabbit=Coelho (Assado) +Rabbit Hide=Pele de Coelho +Chicken=Galinha +Chicken Egg=Ovo de Galinha +Fried Egg=Ovo Frito +Raw Chicken=Carne de Galinha (Crua) +Cooked Chicken=Galinha Assada +Feather=Pluma +Cow already milked!=Vaca já ordenhada! +Cow=Vaca +Bucket of Milk=Balde de leite +Cheese=Queijo +Cheese Block=Bloco de Queijo +[MOD] Mobs Redo 'Animals' loaded=[MOBS_ANIMAL] Mod carregado completamente +Kitten=Gato +Penguin=Pinguim +Rat=Rato +Cooked Rat=Rato (Assado) +Black=Preto +Blue=Azul +Brown=Marrom +Cyan=Ciano +Dark Green=Verde Escuro +Dark Grey=Cinza Escuro +Green=Verde +Grey=Cinza +Magenta=Rosa Magenta +Orange=Laranja +Pink=Rosa +Red=Vermelho +Violet=Violeta +White=Branco +Yellow=Amarelo +@1 Sheep=Ovelha @1 +Raw Mutton=Carneiro (Cru) +Cooked Mutton=Carneiro (Assado) +Warthog=Javali +Raw Porkchop=Costeleta de Javali (Crua) +Cooked Porkchop=Costeleta de Javali Assada diff --git a/locale/mobs_animal.pt_BR.tr b/locale/mobs_animal.pt_BR.tr new file mode 100644 index 0000000..60d9f5c --- /dev/null +++ b/locale/mobs_animal.pt_BR.tr @@ -0,0 +1,46 @@ +# textdomain: Lunovox Heavenfinder (https://libreplanet.org/wiki/User:Lunovox) +Bee=Abelha +Honey=Mel +Beehive=Colméia +Honey Block=Bloco de Mel +Bunny=Coelho +Raw Rabbit=Carne de Coelho (Cru) +Cooked Rabbit=Coelho (Assado) +Rabbit Hide=Pele de Coelho +Chicken=Galinha +Chicken Egg=Ovo de Galinha +Fried Egg=Ovo Frito +Raw Chicken=Carne de Galinha (Crua) +Cooked Chicken=Galinha Assada +Feather=Pluma +Cow already milked!=Vaca já ordenhada! +Cow=Vaca +Bucket of Milk=Balde de leite +Cheese=Queijo +Cheese Block=Bloco de Queijo +[MOD] Mobs Redo 'Animals' loaded=[MOBS_ANIMAL] Mod carregado completamente +Kitten=Gato +Penguin=Pinguim +Rat=Rato +Cooked Rat=Rato (Assado) +Black=Preto +Blue=Azul +Brown=Marrom +Cyan=Ciano +Dark Green=Verde Escuro +Dark Grey=Cinza Escuro +Green=Verde +Grey=Cinza +Magenta=Rosa Magenta +Orange=Laranja +Pink=Rosa +Red=Vermelho +Violet=Violeta +White=Branco +Yellow=Amarelo +@1 Sheep=Ovelha @1 +Raw Mutton=Carneiro (Cru) +Cooked Mutton=Carneiro (Assado) +Warthog=Javali +Raw Porkchop=Costeleta de Javali (Crua) +Cooked Porkchop=Costeleta de Javali Assada diff --git a/locale/mobs_animal.ru.tr b/locale/mobs_animal.ru.tr new file mode 100644 index 0000000..9c05c42 --- /dev/null +++ b/locale/mobs_animal.ru.tr @@ -0,0 +1,50 @@ +# textdomain:mobs_animal +@1 Sheep=@1 овца +Bee=Пчела +Beehive=Улей +Black=Черная +Blue=Синяя +Brown=Коричневая +Bucket of Milk=Ведро молока +Bunny=Кролик +Butter=Масло +Cheese=Сыр +Cheese Block=Блок сыра +Chicken=Курица +Chicken Egg=Куриное яйцо +Cooked Chicken=Приготовленная курятина +Cooked Mutton=Приготовленная баранина +Cooked Porkchop=Приготовленные свиные отбивные +Cooked Rabbit=Приготовленная крольчатина +Cooked Rat=Приготовленная крыса +Cow=Корова +Cow already milked!=Корову уже подоили! +Cyan=Голубая +Dark Green=Темно-зеленая +Dark Grey=Темно-серая +Feather=Перо +Fried Egg=Яичница +Glass of Milk=Стакан молока +Green=Зеленая +Grey=Серая +Hairball=Комочек шерсти +Honey=Мёд +Honey Block=Блок мёда +Kitten=Котенок +Magenta=Пурпурная +Orange=Оранжевая +Panda=Панда +Penguin=Пингвин +Pink=Розовая +Rabbit Hide=Кроличья шкурка +Rat=Крыса +Raw Chicken=Сырая курятина +Raw Mutton=Сырая баранина +Raw Porkchop=Свиные отбивные +Raw Rabbit=Сырая крольчатина +Red=Красная +Violet=Фиолетовая +Warthog=Бородавочник +White=Белая +Yellow=Желтая +#[MOD] Mobs Redo Animals loaded= diff --git a/locale/mobs_animal.tr.tr b/locale/mobs_animal.tr.tr new file mode 100644 index 0000000..0883e85 --- /dev/null +++ b/locale/mobs_animal.tr.tr @@ -0,0 +1,50 @@ +# textdomain:mobs_animal +@1 Sheep=@1 Koyun +Bee=Arı +Beehive=Arı kovanı +Black=Siyah +Blue=Mavi +Brown=Kahverengi +Bucket of Milk=Süt kovası +Bunny=Tavşan +#Butter= +Cheese=Peynir +Cheese Block=Peynir bloğu +Chicken=Tavuk +Chicken Egg=Tavuk yumurtası +Cooked Chicken=Pişmiş tavuk +Cooked Mutton=pişmiş kuzu +Cooked Porkchop=Pişmiş pirzola +Cooked Rabbit=pişmiş tavşan +Cooked Rat=Pişmiş sıçan +Cow=İnek +Cow already milked!=İnekte süt yok! +Cyan=Camgöbeği +Dark Green=Koyu yeşil +Dark Grey=Koyu gri +#Feather= +Fried Egg=Kızarmış yumurta +#Glass of Milk= +Green=Yeşil +Grey=Gri +#Hairball= +Honey=Bal +Honey Block=Bal bloğu +Kitten=Yavru kedi +Magenta=Macenta +Orange=Turuncu +#Panda= +#Penguin= +Pink=Pembe +Rabbit Hide=tavşan kürkü +Rat=Sıçan +Raw Chicken=Çiğ tavuk +Raw Mutton=çiğ kuzu +Raw Porkchop=Çiğ pirzola +Raw Rabbit=çiğ tavşan +Red=Kırmızı +Violet=Mor +Warthog=Domuz +White=Beyaz +Yellow=Sarı +#[MOD] Mobs Redo Animals loaded= diff --git a/locale/mobs_animal.zh_CN.tr b/locale/mobs_animal.zh_CN.tr new file mode 100644 index 0000000..af75acd --- /dev/null +++ b/locale/mobs_animal.zh_CN.tr @@ -0,0 +1,50 @@ +# textdomain:mobs_animal +@1 Sheep=@1羊 +Bee=蜜蜂 +Beehive=蜂巢 +Black=黑 +Blue=蓝 +Brown=棕 +Bucket of Milk=一桶牛奶 +Bunny=兔子 +Butter=黄油 +Cheese=奶酪 +Cheese Block=奶酪方块 +Chicken=鸡 +Chicken Egg=鸡蛋 +Cooked Chicken=熟鸡肉 +Cooked Mutton=熟羊肉 +Cooked Porkchop=熟猪排 +Cooked Rabbit=熟兔肉 +Cooked Rat=熟老鼠 +Cow=奶牛 +Cow already milked!=奶牛已被挤奶! +Cyan=青 +Dark Green=暗绿 +Dark Grey=暗灰 +Feather=羽毛 +Fried Egg=煎蛋 +Glass of Milk=一杯牛奶 +Green=绿 +Grey=灰 +Hairball=毛球 +Honey=蜂蜜 +Honey Block=蜂蜜方块 +Kitten=小猫 +Magenta=品红 +Orange=橙 +Panda=熊猫 +Penguin=企鹅 +Pink=粉红 +Rabbit Hide=兔子皮 +Rat=老鼠 +Raw Chicken=生鸡肉 +Raw Mutton=生羊肉 +Raw Porkchop=生猪排 +Raw Rabbit=生兔肉 +Red=红 +Violet=紫 +Warthog=野猪 +White=白 +Yellow=黄 +#[MOD] Mobs Redo Animals loaded= diff --git a/locale/mobs_animal.zh_TW.tr b/locale/mobs_animal.zh_TW.tr new file mode 100644 index 0000000..455122b --- /dev/null +++ b/locale/mobs_animal.zh_TW.tr @@ -0,0 +1,50 @@ +# textdomain:mobs_animal +@1 Sheep=@1羊 +Bee=蜜蜂 +Beehive=蜂巢 +Black=黑 +Blue=藍 +Brown=棕 +Bucket of Milk=一桶牛奶 +Bunny=兔子 +Butter=黃油 +Cheese=奶酪 +Cheese Block=奶酪方塊 +Chicken=雞 +Chicken Egg=雞蛋 +Cooked Chicken=熟雞肉 +Cooked Mutton=熟羊肉 +Cooked Porkchop=熟豬排 +Cooked Rabbit=熟兔肉 +Cooked Rat=熟老鼠 +Cow=奶牛 +Cow already milked!=奶牛已被擠奶! +Cyan=青 +Dark Green=暗綠 +Dark Grey=暗灰 +Feather=羽毛 +Fried Egg=煎蛋 +Glass of Milk=一杯牛奶 +Green=綠 +Grey=灰 +Hairball=毛球 +Honey=蜂蜜 +Honey Block=蜂蜜方塊 +Kitten=小貓 +Magenta=品紅 +Orange=橙 +Panda=熊貓 +Penguin=企鵝 +Pink=粉紅 +Rabbit Hide=兔子皮 +Rat=老鼠 +Raw Chicken=生雞肉 +Raw Mutton=生羊肉 +Raw Porkchop=生豬排 +Raw Rabbit=生兔肉 +Red=紅 +Violet=紫 +Warthog=野豬 +White=白 +Yellow=黃 +#[MOD] Mobs Redo Animals loaded= diff --git a/locale/ms.po b/locale/ms.po new file mode 100644 index 0000000..38e896d --- /dev/null +++ b/locale/ms.po @@ -0,0 +1,199 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-02-06 00:17+0800\n" +"PO-Revision-Date: 2018-02-06 00:25+0800\n" +"Last-Translator: MuhdNurHidayat (MNH48) \n" +"Language-Team: \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: bee.lua +msgid "Bee" +msgstr "Lebah" + +#: bee.lua +msgid "Honey" +msgstr "Madu" + +#: bee.lua +msgid "Beehive" +msgstr "Sarang Lebah" + +#: bee.lua +msgid "Honey Block" +msgstr "Blok Madu" + +#: bunny.lua +msgid "Bunny" +msgstr "Arnab" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "Daging Arnab Mentah" + +#: bunny.lua +msgid "Cooked Rabbit" +msgstr "Daging Arnab Bakar" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "Belulang Arnab" + +#: chicken.lua +msgid "Chicken" +msgstr "Ayam" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "Telur Ayam" + +#: chicken.lua +msgid "Fried Egg" +msgstr "Telur Goreng" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "Ayam Mentah" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "Ayam Bakar" + +#: chicken.lua +msgid "Feather" +msgstr "Bulu" + +#: cow.lua +msgid "Cow already milked!" +msgstr "Lembu telah diperah susunya!" + +#: cow.lua +msgid "Cow" +msgstr "Lembu" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "Baldi Susu" + +#: cow.lua +msgid "Cheese" +msgstr "Keju" + +#: cow.lua +msgid "Cheese Block" +msgstr "Blok Keju" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "[MODS] Mobs Redo 'Animals' telah dimuatkan" + +#: kitten.lua +msgid "Kitten" +msgstr "Anak Kucing" + +#: penguin.lua +msgid "Penguin" +msgstr "Penguin" + +#: rat.lua +msgid "Rat" +msgstr "Tikus" + +#: rat.lua +msgid "Cooked Rat" +msgstr "Tikus Bakar" + +#: sheep.lua +msgid "Black" +msgstr "Hitam" + +#: sheep.lua +msgid "Blue" +msgstr "Biru" + +#: sheep.lua +msgid "Brown" +msgstr "Perang" + +#: sheep.lua +msgid "Cyan" +msgstr "Sian" + +#: sheep.lua +msgid "Dark Green" +msgstr "Hijau Gelap" + +#: sheep.lua +msgid "Dark Grey" +msgstr "Kelabu Gelap" + +#: sheep.lua +msgid "Green" +msgstr "Hijau" + +#: sheep.lua +msgid "Grey" +msgstr "Kelabu" + +#: sheep.lua +msgid "Magenta" +msgstr "Merah Lembayung" + +#: sheep.lua +msgid "Orange" +msgstr "Jingga" + +#: sheep.lua +msgid "Pink" +msgstr "Merah Jambu" + +#: sheep.lua +msgid "Red" +msgstr "Merah" + +#: sheep.lua +msgid "Violet" +msgstr "Ungu" + +#: sheep.lua +msgid "White" +msgstr "Putih" + +#: sheep.lua +msgid "Yellow" +msgstr "Kuning" + +#: sheep.lua +msgid "@1 Sheep" +msgstr "Biri-biri @1" + +#: sheep.lua +msgid "Raw Mutton" +msgstr "Daging Biri-biri Mentah" + +#: sheep.lua +msgid "Cooked Mutton" +msgstr "Daging Biri-biri Bakar" + +#: warthog.lua +msgid "Warthog" +msgstr "Babi Hutan" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "Daging Babi Mentah" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "Daging Babi Bakar" diff --git a/locale/po2tr.lua b/locale/po2tr.lua new file mode 100644 index 0000000..b48ea07 --- /dev/null +++ b/locale/po2tr.lua @@ -0,0 +1,116 @@ +#!/usr/bin/env luajit + +-- Convert regular Gettext PO files to Minetest-specific TR files. If there is +-- already a TR file with the same name of the PO file except the file suffix +-- bneing .tr (or .TR) instead of .po (or .PO) then THIS FILE WILL BE +-- OVERWRITTEN WITHOUT INFORMATION OR A WAY TO RECOVER THE PREVIOUS FILE! +-- +-- +-- ▄██▄ +-- ▀███ +-- █ +-- ▄▄▄▄▄ █ +-- ▀▄ ▀▄ █ BACKUP +-- ▄▀▀▀▄ █▄▄▄▄█▄▄ ▄▀▀▀▄ █ +-- █ ▄ █ █ ▄ █ █ +-- ▀▄ ▄▀ ▀▄ ▄▀ █ +-- █▀▀▀ ▀▀▀ █ █ +-- █ █ █ ALL +-- ▄▀▄▄▀▄ █ ▄█▀█▀█▀█▀█▀█▄ █ █ +-- █▒▒▒▒█ █ █████████████▄ █ █ +-- █▒▒▒▒█ █ ██████████████▄ █ █ +-- █▒▒▒▒█ █ ██████████████▄ █ █ +-- █▒▒▒▒█ █ ██████████████ █ █ +-- █▒▒▒▒█ █ ██████████████▀ █ █ THE +-- █▒▒▒▒█ ██ ██████████████ █ █ +-- ▀████▀ ██▀█ █████████████▀ █▄█ +-- ██ ██ ▀█ █▄█▄█▄█▄█▄█▀ ▄█▀ +-- ██ ██ ▀█ ▄▀▓█ +-- ██ ██ ▀█▀▄▄▄▄▄▄▄▄▄▀▀▓▓▓█ +-- ████ █▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█ +-- ███ █▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█ THINGS +-- ██ █▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█ +-- ██ █▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█ +-- ██ ▐█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█ +-- ██ ▐█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█ +-- ██ ▐█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█▌ !!! +-- ██ ▐█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█▌ +-- ██ ▐█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█▌ +-- ██ ▐█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█▌ +-- +-- +-- The syntax of TR files according to the introducing forum post is: +-- +-- # textdomain: namespace +-- original 1 = translation 1 +-- original 2 = translation 2 +-- original 3 = tralslation 3 +-- original N = translation N +-- +-- Where namespace should be the name of the mod. Following strings have to be +-- escaped using @. +-- +-- String | Escape +-- -------+-------- +-- `@` |`@@` +-- `=` |`@=` +-- `\n` |`@\n` +-- +-- See https://forum.minetest.net/viewtopic.php?t=18349 for details. + + +-- Preparation +if arg[1] == nil or arg[2] == nil then + print('Provide the namesspace as first parameter') + print('Provide the path to the source PO file as second parameter') + print('Example: '..arg[0]..' mymod path/to/my/source.po') + return +end +local SEP = package.path:match('(%p)%?%.') or '/' -- wonky but hey ... :) + + +-- Assign parameters to local variables +local namespace = arg[1] +local po_file = arg[2] +local tr_file = arg[2]:gsub('po$', 'tr'):gsub('PO$', 'TR') + + +-- Get the translations through crude plaintext file parsing +local file_contents = {} +local translations = {} + +local po_file_handle = io.open(po_file, 'rb') +if po_file_handle == nil then print('No base file found') return end + +for line in po_file_handle:lines() do + if line:match('^msgid') or line:match('^msgstr') then + table.insert(file_contents, line) + end +end + +local escape_string = function (s) + s = s:gsub('@([^%d])', '@@%1') -- All @ not followed by a number become @@ + s = s:gsub('([^@]@)$', '%1@') -- An @ at the end of the string become @@ + s = s:gsub('=', '@=') -- All = become @= + return s +end + +for number,line_content in pairs(file_contents) do + if line_content:match('^msgid') then + local o = line_content:gsub('^msgid "(.+)"$', '%1') + local t = file_contents[number + 1]:gsub('^msgstr "(.+)"$', '%1') + if o ~= 'msgid = ""' and t ~= 'msgstr ""' then + table.insert(translations, escape_string(o)..'='..escape_string(t)) + end + end +end +print(number) +po_file_handle:close() + + +-- Write translation to file +local tr_file_handle = io.open(tr_file, 'w+') +if tr_file_handle == nil then print('Could not open target file') return end +tr_file_handle:write('# textdomain: '..namespace, "\n") +for _,line in pairs(translations) do tr_file_handle:write(line, "\n") end +tr_file_handle:close() diff --git a/locale/pt.po b/locale/pt.po new file mode 100644 index 0000000..20f09d6 --- /dev/null +++ b/locale/pt.po @@ -0,0 +1,199 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 11:28+0200\n" +"PO-Revision-Date: 2021-06-20 18:51-0300\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" +"Last-Translator: Lunovox Heavenfinder \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Language: pt_BR\n" + +#: bee.lua +msgid "Bee" +msgstr "Abelha" + +#: bee.lua +msgid "Honey" +msgstr "Mel" + +#: bee.lua +msgid "Beehive" +msgstr "Colméia" + +#: bee.lua +msgid "Honey Block" +msgstr "Bloco de Mel" + +#: bunny.lua +msgid "Bunny" +msgstr "Coelho" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "Carne de Coelho (Cru)" + +#: bunny.lua +msgid "Cooked Rabbit" +msgstr "Coelho (Assado)" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "Pele de Coelho" + +#: chicken.lua +msgid "Chicken" +msgstr "Galinha" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "Ovo de Galinha" + +#: chicken.lua +msgid "Fried Egg" +msgstr "Ovo Frito" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "Carne de Galinha (Crua)" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "Galinha Assada" + +#: chicken.lua +msgid "Feather" +msgstr "Pluma" + +#: cow.lua +msgid "Cow already milked!" +msgstr "Vaca já ordenhada!" + +#: cow.lua +msgid "Cow" +msgstr "Vaca" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "Balde de leite" + +#: cow.lua +msgid "Cheese" +msgstr "Queijo" + +#: cow.lua +msgid "Cheese Block" +msgstr "Bloco de Queijo" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "[MOBS_ANIMAL] Mod carregado completamente" + +#: kitten.lua +msgid "Kitten" +msgstr "Gato" + +#: penguin.lua +msgid "Penguin" +msgstr "Pinguim" + +#: rat.lua +msgid "Rat" +msgstr "Rato" + +#: rat.lua +msgid "Cooked Rat" +msgstr "Rato (Assado)" + +#: sheep.lua +msgid "Black" +msgstr "Preto" + +#: sheep.lua +msgid "Blue" +msgstr "Azul" + +#: sheep.lua +msgid "Brown" +msgstr "Marrom" + +#: sheep.lua +msgid "Cyan" +msgstr "Ciano" + +#: sheep.lua +msgid "Dark Green" +msgstr "Verde Escuro" + +#: sheep.lua +msgid "Dark Grey" +msgstr "Cinza Escuro" + +#: sheep.lua +msgid "Green" +msgstr "Verde" + +#: sheep.lua +msgid "Grey" +msgstr "Cinza" + +#: sheep.lua +msgid "Magenta" +msgstr "Rosa Magenta" + +#: sheep.lua +msgid "Orange" +msgstr "Laranja" + +#: sheep.lua +msgid "Pink" +msgstr "Rosa" + +#: sheep.lua +msgid "Red" +msgstr "Vermelho" + +#: sheep.lua +msgid "Violet" +msgstr "Violeta" + +#: sheep.lua +msgid "White" +msgstr "Branco" + +#: sheep.lua +msgid "Yellow" +msgstr "Amarelo" + +#: sheep.lua +msgid "@1 Sheep" +msgstr "Ovelha @1 " + +#: sheep.lua +msgid "Raw Mutton" +msgstr "Carneiro (Cru)" + +#: sheep.lua +msgid "Cooked Mutton" +msgstr "Carneiro (Assado)" + +#: warthog.lua +msgid "Warthog" +msgstr "Javali" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "Costeleta de Javali (Crua)" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "Costeleta de Javali Assada" diff --git a/locale/pt.txt b/locale/pt.txt new file mode 100644 index 0000000..60d9f5c --- /dev/null +++ b/locale/pt.txt @@ -0,0 +1,46 @@ +# textdomain: Lunovox Heavenfinder (https://libreplanet.org/wiki/User:Lunovox) +Bee=Abelha +Honey=Mel +Beehive=Colméia +Honey Block=Bloco de Mel +Bunny=Coelho +Raw Rabbit=Carne de Coelho (Cru) +Cooked Rabbit=Coelho (Assado) +Rabbit Hide=Pele de Coelho +Chicken=Galinha +Chicken Egg=Ovo de Galinha +Fried Egg=Ovo Frito +Raw Chicken=Carne de Galinha (Crua) +Cooked Chicken=Galinha Assada +Feather=Pluma +Cow already milked!=Vaca já ordenhada! +Cow=Vaca +Bucket of Milk=Balde de leite +Cheese=Queijo +Cheese Block=Bloco de Queijo +[MOD] Mobs Redo 'Animals' loaded=[MOBS_ANIMAL] Mod carregado completamente +Kitten=Gato +Penguin=Pinguim +Rat=Rato +Cooked Rat=Rato (Assado) +Black=Preto +Blue=Azul +Brown=Marrom +Cyan=Ciano +Dark Green=Verde Escuro +Dark Grey=Cinza Escuro +Green=Verde +Grey=Cinza +Magenta=Rosa Magenta +Orange=Laranja +Pink=Rosa +Red=Vermelho +Violet=Violeta +White=Branco +Yellow=Amarelo +@1 Sheep=Ovelha @1 +Raw Mutton=Carneiro (Cru) +Cooked Mutton=Carneiro (Assado) +Warthog=Javali +Raw Porkchop=Costeleta de Javali (Crua) +Cooked Porkchop=Costeleta de Javali Assada diff --git a/locale/pt_BR.po b/locale/pt_BR.po new file mode 100644 index 0000000..20f09d6 --- /dev/null +++ b/locale/pt_BR.po @@ -0,0 +1,199 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 11:28+0200\n" +"PO-Revision-Date: 2021-06-20 18:51-0300\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" +"Last-Translator: Lunovox Heavenfinder \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Language: pt_BR\n" + +#: bee.lua +msgid "Bee" +msgstr "Abelha" + +#: bee.lua +msgid "Honey" +msgstr "Mel" + +#: bee.lua +msgid "Beehive" +msgstr "Colméia" + +#: bee.lua +msgid "Honey Block" +msgstr "Bloco de Mel" + +#: bunny.lua +msgid "Bunny" +msgstr "Coelho" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "Carne de Coelho (Cru)" + +#: bunny.lua +msgid "Cooked Rabbit" +msgstr "Coelho (Assado)" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "Pele de Coelho" + +#: chicken.lua +msgid "Chicken" +msgstr "Galinha" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "Ovo de Galinha" + +#: chicken.lua +msgid "Fried Egg" +msgstr "Ovo Frito" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "Carne de Galinha (Crua)" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "Galinha Assada" + +#: chicken.lua +msgid "Feather" +msgstr "Pluma" + +#: cow.lua +msgid "Cow already milked!" +msgstr "Vaca já ordenhada!" + +#: cow.lua +msgid "Cow" +msgstr "Vaca" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "Balde de leite" + +#: cow.lua +msgid "Cheese" +msgstr "Queijo" + +#: cow.lua +msgid "Cheese Block" +msgstr "Bloco de Queijo" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "[MOBS_ANIMAL] Mod carregado completamente" + +#: kitten.lua +msgid "Kitten" +msgstr "Gato" + +#: penguin.lua +msgid "Penguin" +msgstr "Pinguim" + +#: rat.lua +msgid "Rat" +msgstr "Rato" + +#: rat.lua +msgid "Cooked Rat" +msgstr "Rato (Assado)" + +#: sheep.lua +msgid "Black" +msgstr "Preto" + +#: sheep.lua +msgid "Blue" +msgstr "Azul" + +#: sheep.lua +msgid "Brown" +msgstr "Marrom" + +#: sheep.lua +msgid "Cyan" +msgstr "Ciano" + +#: sheep.lua +msgid "Dark Green" +msgstr "Verde Escuro" + +#: sheep.lua +msgid "Dark Grey" +msgstr "Cinza Escuro" + +#: sheep.lua +msgid "Green" +msgstr "Verde" + +#: sheep.lua +msgid "Grey" +msgstr "Cinza" + +#: sheep.lua +msgid "Magenta" +msgstr "Rosa Magenta" + +#: sheep.lua +msgid "Orange" +msgstr "Laranja" + +#: sheep.lua +msgid "Pink" +msgstr "Rosa" + +#: sheep.lua +msgid "Red" +msgstr "Vermelho" + +#: sheep.lua +msgid "Violet" +msgstr "Violeta" + +#: sheep.lua +msgid "White" +msgstr "Branco" + +#: sheep.lua +msgid "Yellow" +msgstr "Amarelo" + +#: sheep.lua +msgid "@1 Sheep" +msgstr "Ovelha @1 " + +#: sheep.lua +msgid "Raw Mutton" +msgstr "Carneiro (Cru)" + +#: sheep.lua +msgid "Cooked Mutton" +msgstr "Carneiro (Assado)" + +#: warthog.lua +msgid "Warthog" +msgstr "Javali" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "Costeleta de Javali (Crua)" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "Costeleta de Javali Assada" diff --git a/locale/pt_BR.txt b/locale/pt_BR.txt new file mode 100644 index 0000000..60d9f5c --- /dev/null +++ b/locale/pt_BR.txt @@ -0,0 +1,46 @@ +# textdomain: Lunovox Heavenfinder (https://libreplanet.org/wiki/User:Lunovox) +Bee=Abelha +Honey=Mel +Beehive=Colméia +Honey Block=Bloco de Mel +Bunny=Coelho +Raw Rabbit=Carne de Coelho (Cru) +Cooked Rabbit=Coelho (Assado) +Rabbit Hide=Pele de Coelho +Chicken=Galinha +Chicken Egg=Ovo de Galinha +Fried Egg=Ovo Frito +Raw Chicken=Carne de Galinha (Crua) +Cooked Chicken=Galinha Assada +Feather=Pluma +Cow already milked!=Vaca já ordenhada! +Cow=Vaca +Bucket of Milk=Balde de leite +Cheese=Queijo +Cheese Block=Bloco de Queijo +[MOD] Mobs Redo 'Animals' loaded=[MOBS_ANIMAL] Mod carregado completamente +Kitten=Gato +Penguin=Pinguim +Rat=Rato +Cooked Rat=Rato (Assado) +Black=Preto +Blue=Azul +Brown=Marrom +Cyan=Ciano +Dark Green=Verde Escuro +Dark Grey=Cinza Escuro +Green=Verde +Grey=Cinza +Magenta=Rosa Magenta +Orange=Laranja +Pink=Rosa +Red=Vermelho +Violet=Violeta +White=Branco +Yellow=Amarelo +@1 Sheep=Ovelha @1 +Raw Mutton=Carneiro (Cru) +Cooked Mutton=Carneiro (Assado) +Warthog=Javali +Raw Porkchop=Costeleta de Javali (Crua) +Cooked Porkchop=Costeleta de Javali Assada diff --git a/locale/ru.po b/locale/ru.po new file mode 100644 index 0000000..9699d8e --- /dev/null +++ b/locale/ru.po @@ -0,0 +1,216 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-13 16:00 (UTC+5)\n" +"PO-Revision-Date: 2020-06-19 19:00 (UTC+3)\n" +"Last-Translator: YELLOW \n" +"Language-Team: \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: bee.lua +msgid "Bee" +msgstr "Пчела" + +#: bee.lua +msgid "Honey" +msgstr "Мёд" + +#: bee.lua +msgid "Beehive" +msgstr "Улей" + +#: bee.lua +msgid "Honey Block" +msgstr "Блок мёда" + +#: bunny.lua +msgid "Bunny" +msgstr "Кролик" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "Сырая крольчатина" + +#: bunny.lua +#, fuzzy +msgid "Cooked Rabbit" +msgstr "Приготовленная крольчатина" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "Кроличья шкурка" + +#: chicken.lua +msgid "Chicken" +msgstr "Курица" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "Куриное яйцо" + +#: chicken.lua +msgid "Fried Egg" +msgstr "Яичница" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "Сырая курятина" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "Приготовленная курятина" + +#: chicken.lua +msgid "Feather" +msgstr "Перо" + +#: cow.lua +msgid "Cow already milked!" +msgstr "Корову уже подоили!" + +#: cow.lua +msgid "Cow" +msgstr "Корова" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "Ведро молока" + +#: cow.lua +msgid "Glass of Milk" +msgstr "Стакан молока" + +#: cow.lua +msgid "Butter" +msgstr "Масло" + +#: cow.lua +msgid "Cheese" +msgstr "Сыр" + +#: cow.lua +msgid "Cheese Block" +msgstr "Блок сыра" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "[МОД] Mobs Redo 'Animals' загружен" + +#: kitten.lua +msgid "Kitten" +msgstr "Котенок" + +#: kitten.lua +msgid "Hairball" +msgstr "Комочек шерсти" + +#: panda.lua +msgid "Panda" +msgstr "Панда" + +#: penguin.lua +msgid "Penguin" +msgstr "Пингвин" + +#: rat.lua +msgid "Rat" +msgstr "Крыса" + +#: rat.lua +msgid "Cooked Rat" +msgstr "Приготовленная крыса" + +#: sheep.lua +msgid "Black" +msgstr "Черная" + +#: sheep.lua +msgid "Blue" +msgstr "Синяя" + +#: sheep.lua +msgid "Brown" +msgstr "Коричневая" + +#: sheep.lua +msgid "Cyan" +msgstr "Голубая" + +#: sheep.lua +msgid "Dark Green" +msgstr "Темно-зеленая" + +#: sheep.lua +msgid "Dark Grey" +msgstr "Темно-серая" + +#: sheep.lua +msgid "Green" +msgstr "Зеленая" + +#: sheep.lua +msgid "Grey" +msgstr "Серая" + +#: sheep.lua +msgid "Magenta" +msgstr "Пурпурная" + +#: sheep.lua +msgid "Orange" +msgstr "Оранжевая" + +#: sheep.lua +msgid "Pink" +msgstr "Розовая" + +#: sheep.lua +msgid "Red" +msgstr "Красная" + +#: sheep.lua +msgid "Violet" +msgstr "Фиолетовая" + +#: sheep.lua +msgid "White" +msgstr "Белая" + +#: sheep.lua +msgid "Yellow" +msgstr "Желтая" + +#: sheep.lua +msgid "@1 Sheep" +msgstr "@1 овца" + +#: sheep.lua +msgid "Raw Mutton" +msgstr "Сырая баранина" + +#: sheep.lua +#, fuzzy +msgid "Cooked Mutton" +msgstr "Приготовленная баранина" + +#: warthog.lua +msgid "Warthog" +msgstr "Бородавочник" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "Свиные отбивные" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "Приготовленные свиные отбивные" diff --git a/locale/template.pot b/locale/template.pot new file mode 100644 index 0000000..79f58ff --- /dev/null +++ b/locale/template.pot @@ -0,0 +1,198 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 11:28+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: bee.lua +msgid "Bee" +msgstr "" + +#: bee.lua +msgid "Honey" +msgstr "" + +#: bee.lua +msgid "Beehive" +msgstr "" + +#: bee.lua +msgid "Honey Block" +msgstr "" + +#: bunny.lua +msgid "Bunny" +msgstr "" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "" + +#: bunny.lua +msgid "Cooked Rabbit" +msgstr "" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "" + +#: chicken.lua +msgid "Chicken" +msgstr "" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "" + +#: chicken.lua +msgid "Fried Egg" +msgstr "" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "" + +#: chicken.lua +msgid "Feather" +msgstr "" + +#: cow.lua +msgid "Cow already milked!" +msgstr "" + +#: cow.lua +msgid "Cow" +msgstr "" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "" + +#: cow.lua +msgid "Cheese" +msgstr "" + +#: cow.lua +msgid "Cheese Block" +msgstr "" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "" + +#: kitten.lua +msgid "Kitten" +msgstr "" + +#: penguin.lua +msgid "Penguin" +msgstr "" + +#: rat.lua +msgid "Rat" +msgstr "" + +#: rat.lua +msgid "Cooked Rat" +msgstr "" + +#: sheep.lua +msgid "Black" +msgstr "" + +#: sheep.lua +msgid "Blue" +msgstr "" + +#: sheep.lua +msgid "Brown" +msgstr "" + +#: sheep.lua +msgid "Cyan" +msgstr "" + +#: sheep.lua +msgid "Dark Green" +msgstr "" + +#: sheep.lua +msgid "Dark Grey" +msgstr "" + +#: sheep.lua +msgid "Green" +msgstr "" + +#: sheep.lua +msgid "Grey" +msgstr "" + +#: sheep.lua +msgid "Magenta" +msgstr "" + +#: sheep.lua +msgid "Orange" +msgstr "" + +#: sheep.lua +msgid "Pink" +msgstr "" + +#: sheep.lua +msgid "Red" +msgstr "" + +#: sheep.lua +msgid "Violet" +msgstr "" + +#: sheep.lua +msgid "White" +msgstr "" + +#: sheep.lua +msgid "Yellow" +msgstr "" + +#: sheep.lua +msgid "@1 Sheep" +msgstr "" + +#: sheep.lua +msgid "Raw Mutton" +msgstr "" + +#: sheep.lua +msgid "Cooked Mutton" +msgstr "" + +#: warthog.lua +msgid "Warthog" +msgstr "" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "" diff --git a/locale/tr.po b/locale/tr.po new file mode 100644 index 0000000..f3c0b86 --- /dev/null +++ b/locale/tr.po @@ -0,0 +1,202 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 11:28+0200\n" +"PO-Revision-Date: 2017-04-26 09:02+0200\n" +"Last-Translator: Admicos\n" +"Language-Team: \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.12\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: bee.lua +msgid "Bee" +msgstr "Arı" + +#: bee.lua +msgid "Honey" +msgstr "Bal" + +#: bee.lua +msgid "Beehive" +msgstr "Arı kovanı" + +#: bee.lua +msgid "Honey Block" +msgstr "Bal bloğu" + +#: bunny.lua +msgid "Bunny" +msgstr "Tavşan" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "çiğ tavşan" + +#: bunny.lua +#, fuzzy +msgid "Cooked Rabbit" +msgstr "pişmiş tavşan" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "tavşan kürkü" + +#: chicken.lua +msgid "Chicken" +msgstr "Tavuk" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "Tavuk yumurtası " + +#: chicken.lua +msgid "Fried Egg" +msgstr "Kızarmış yumurta" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "Çiğ tavuk" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "Pişmiş tavuk" + +#: chicken.lua +msgid "Feather" +msgstr "" + +#: cow.lua +msgid "Cow already milked!" +msgstr "İnekte süt yok!" + +#: cow.lua +msgid "Cow" +msgstr "İnek" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "Süt kovası" + +#: cow.lua +msgid "Cheese" +msgstr "Peynir" + +#: cow.lua +msgid "Cheese Block" +msgstr "Peynir bloğu" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "[MOD] Mobs Redo 'Hayvanlar' yüklendi" + +#: kitten.lua +msgid "Kitten" +msgstr "Yavru kedi" + +#: penguin.lua +msgid "Penguin" +msgstr "" + +#: rat.lua +msgid "Rat" +msgstr "Sıçan" + +#: rat.lua +msgid "Cooked Rat" +msgstr "Pişmiş sıçan" + +#: sheep.lua +msgid "Black" +msgstr "Siyah" + +#: sheep.lua +msgid "Blue" +msgstr "Mavi" + +#: sheep.lua +msgid "Brown" +msgstr "Kahverengi" + +#: sheep.lua +msgid "Cyan" +msgstr "Camgöbeği" + +#: sheep.lua +msgid "Dark Green" +msgstr "Koyu yeşil" + +#: sheep.lua +msgid "Dark Grey" +msgstr "Koyu gri" + +#: sheep.lua +msgid "Green" +msgstr "Yeşil" + +#: sheep.lua +msgid "Grey" +msgstr "Gri" + +#: sheep.lua +msgid "Magenta" +msgstr "Macenta" + +#: sheep.lua +msgid "Orange" +msgstr "Turuncu" + +#: sheep.lua +msgid "Pink" +msgstr "Pembe" + +#: sheep.lua +msgid "Red" +msgstr "Kırmızı" + +#: sheep.lua +msgid "Violet" +msgstr "Mor" + +#: sheep.lua +msgid "White" +msgstr "Beyaz" + +#: sheep.lua +msgid "Yellow" +msgstr "Sarı" + +#: sheep.lua +#, fuzzy +msgid "@1 Sheep" +msgstr "@1 Koyun" + +#: sheep.lua +msgid "Raw Mutton" +msgstr "çiğ kuzu" + +#: sheep.lua +#, fuzzy +msgid "Cooked Mutton" +msgstr "pişmiş kuzu" + +#: warthog.lua +msgid "Warthog" +msgstr "Domuz" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "Çiğ pirzola" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "Pişmiş pirzola" diff --git a/locale/zh_CN.pot b/locale/zh_CN.pot new file mode 100644 index 0000000..6c1bbb1 --- /dev/null +++ b/locale/zh_CN.pot @@ -0,0 +1,206 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# IFRFSX <1079092922@qq.com>, 2020. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 11:28+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: bee.lua +msgid "Bee" +msgstr "蜜蜂" + +#: bee.lua +msgid "Honey" +msgstr "蜂蜜" + +#: bee.lua +msgid "Beehive" +msgstr "蜂巢" + +#: bee.lua +msgid "Honey Block" +msgstr "蜂蜜方块" + +#: bunny.lua +msgid "Bunny" +msgstr "兔子" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "生兔肉" + +#: bunny.lua +msgid "Cooked Rabbit" +msgstr "熟兔肉" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "兔子皮" + +#: chicken.lua +msgid "Chicken" +msgstr "鸡" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "鸡蛋" + +#: chicken.lua +msgid "Fried Egg" +msgstr "煎蛋" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "生鸡肉" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "熟鸡肉" + +#: chicken.lua +msgid "Feather" +msgstr "羽毛" + +#: cow.lua +msgid "Cow already milked!" +msgstr "奶牛已经被挤奶了!" + +#: cow.lua +msgid "Cow" +msgstr "奶牛" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "一桶牛奶" + +#: cow.lua +msgid "Glass of Milk" +msgstr "一杯牛奶" + +#: cow.lua +msgid "Cheese" +msgstr "奶酪" + +#: cow.lua +msgid "Cheese Block" +msgstr "奶酪方块" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "[模组] Mobs Redo 'Animals' 已加载!" + +#: kitten.lua +msgid "Kitten" +msgstr "小猫" + +#: kitten.lua +msgid "Hairball" +msgstr "毛球" + +#: penguin.lua +msgid "Penguin" +msgstr "企鹅" + +#: rat.lua +msgid "Rat" +msgstr "老鼠" + +#: rat.lua +msgid "Cooked Rat" +msgstr "熟老鼠" + +#: sheep.lua +msgid "Black" +msgstr "黑" + +#: sheep.lua +msgid "Blue" +msgstr "蓝" + +#: sheep.lua +msgid "Brown" +msgstr "棕" + +#: sheep.lua +msgid "Cyan" +msgstr "青" + +#: sheep.lua +msgid "Dark Green" +msgstr "蓝绿" + +#: sheep.lua +msgid "Dark Grey" +msgstr "蓝灰" + +#: sheep.lua +msgid "Green" +msgstr "绿" + +#: sheep.lua +msgid "Grey" +msgstr "灰" + +#: sheep.lua +msgid "Magenta" +msgstr "品红" + +#: sheep.lua +msgid "Orange" +msgstr "橙" + +#: sheep.lua +msgid "Pink" +msgstr "粉红" + +#: sheep.lua +msgid "Red" +msgstr "红" + +#: sheep.lua +msgid "Violet" +msgstr "紫" + +#: sheep.lua +msgid "White" +msgstr "白" + +#: sheep.lua +msgid "Yellow" +msgstr "黄" + +#: sheep.lua +msgid "@1 Sheep" +msgstr "@1羊" + +#: sheep.lua +msgid "Raw Mutton" +msgstr "生羊肉" + +#: sheep.lua +msgid "Cooked Mutton" +msgstr "熟羊肉" + +#: warthog.lua +msgid "Warthog" +msgstr "野猪" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "生猪排" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "熟猪排" diff --git a/locale/zh_CN.txt b/locale/zh_CN.txt new file mode 100644 index 0000000..605e24c --- /dev/null +++ b/locale/zh_CN.txt @@ -0,0 +1,53 @@ +# Template for translations of mobs_animal mod +# last update: 2020/02/13 + +Bee = 蜜蜂 +Honey = 蜂蜜 +Beehive = 蜂巢 +Honey Block = 蜂蜜方块 +Butter = 黄油 +Bunny = 兔子 +Raw Rabbit = 生兔肉 +Cooked Rabbit = 熟兔肉 +Rabbit Hide = 兔子皮 +Chicken = 鸡 +Chicken Egg = 鸡蛋 +Fried Egg = 煎蛋 +Raw Chicken = 生鸡肉 +Cooked Chicken = 熟鸡肉 +Feather = 羽毛 +Cow already milked! = 奶牛已被挤奶! +Cow = 奶牛 +Bucket of Milk = 一桶牛奶 +Cheese = 奶酪 +Cheese Block = 奶酪方块 +[MOD] Mobs Redo 'Animals' loaded = [模组] Mobs Redo 'Animals' 已加载! +Kitten = 小猫 +Penguin = 企鹅 +Rat = 老鼠 +Cooked Rat = 熟老鼠 +Black = 黑 +Blue = 蓝 +Brown = 棕 +Cyan = 青 +Dark Green = 暗绿 +Dark Grey = 暗灰 +Green = 绿 +Grey = 灰 +Magenta = 品红 +Orange = 橙 +Pink = 粉红 +Red = 红 +Violet = 紫 +White = 白 +Yellow = 黄 +@1 Sheep = @1羊 +Raw Mutton = 生羊肉 +Cooked Mutton = 熟羊肉 +Warthog = 野猪 +Raw Porkchop = 生猪排 +Cooked Porkchop = 熟猪排 +Panda = 熊猫 + +Glass of Milk = 一杯牛奶 +Hairball = 毛球 diff --git a/locale/zh_TW.txt b/locale/zh_TW.txt new file mode 100644 index 0000000..133db45 --- /dev/null +++ b/locale/zh_TW.txt @@ -0,0 +1,53 @@ +# Template for translations of mobs_animal mod +# last update: 2020/02/13 + +Bee = 蜜蜂 +Honey = 蜂蜜 +Beehive = 蜂巢 +Honey Block = 蜂蜜方塊 +Butter = 黃油 +Bunny = 兔子 +Raw Rabbit = 生兔肉 +Cooked Rabbit = 熟兔肉 +Rabbit Hide = 兔子皮 +Chicken = 雞 +Chicken Egg = 雞蛋 +Fried Egg = 煎蛋 +Raw Chicken = 生雞肉 +Cooked Chicken = 熟雞肉 +Feather = 羽毛 +Cow already milked! = 奶牛已被擠奶! +Cow = 奶牛 +Bucket of Milk = 一桶牛奶 +Cheese = 奶酪 +Cheese Block = 奶酪方塊 +[MOD] Mobs Redo 'Animals' loaded = [模組] Mobs Redo 'Animals' 已加載! +Kitten = 小貓 +Penguin = 企鵝 +Rat = 老鼠 +Cooked Rat = 熟老鼠 +Black = 黑 +Blue = 藍 +Brown = 棕 +Cyan = 青 +Dark Green = 暗綠 +Dark Grey = 暗灰 +Green = 綠 +Grey = 灰 +Magenta = 品紅 +Orange = 橙 +Pink = 粉紅 +Red = 紅 +Violet = 紫 +White = 白 +Yellow = 黃 +@1 Sheep = @1羊 +Raw Mutton = 生羊肉 +Cooked Mutton = 熟羊肉 +Warthog = 野豬 +Raw Porkchop = 生豬排 +Cooked Porkchop = 熟豬排 +Panda = 熊貓 + +Glass of Milk = 一杯牛奶 +Hairball = 毛球 diff --git a/lucky_block.lua b/lucky_block.lua new file mode 100644 index 0000000..eba0f7c --- /dev/null +++ b/lucky_block.lua @@ -0,0 +1,28 @@ +lucky_block:add_blocks({ + {"spw", "mobs:sheep", 5}, + {"spw", "mobs:rat", 5}, + {"dro", {"mobs:rat_cooked"}, 5}, + {"spw", "mobs:bunny", 3}, + {"nod", "mobs:honey_block", 0}, + {"spw", "mobs:pumba", 5}, + {"nod", "mobs:cheeseblock", 0}, + {"spw", "mobs:chicken", 5}, + {"dro", {"mobs:egg"}, 5}, + {"spw", "mobs:cow", 5}, + {"dro", {"mobs:bucket_milk", "bucket:bucket_water"}, 8}, + {"spw", "mobs:kitten", 2}, + {"exp"}, + {"dro", {"mobs:hairball"}, 3}, + {"dro", {"mobs:chicken_raw", "mobs:chicken_cooked"}, 10}, + {"dro", {"mobs:pork_raw", "mobs:pork_cooked"}, 10}, + {"dro", {"mobs:mutton_raw", "mobs:mutton_cooked"}, 10}, + {"dro", {"mobs:meat_raw", "mobs:meat"}, 10}, + {"dro", {"mobs:glass_milk"}, 5} +}) + +if minetest.registered_nodes["default:nyancat"] then + + lucky_block:add_blocks({ + {"tro", "default:nyancat", "mobs_kitten", true} + }) +end diff --git a/mod.conf b/mod.conf new file mode 100644 index 0000000..6901e46 --- /dev/null +++ b/mod.conf @@ -0,0 +1,4 @@ +name = mobs_animal +depends = mobs +optional_depends = default, lucky_block, intllib +description = Adds mobs using mobs_redo. diff --git a/models/mobs_bee.b3d b/models/mobs_bee.b3d new file mode 100644 index 0000000..aa2c547 Binary files /dev/null and b/models/mobs_bee.b3d differ diff --git a/models/mobs_bunny.b3d b/models/mobs_bunny.b3d new file mode 100644 index 0000000..a8968f2 Binary files /dev/null and b/models/mobs_bunny.b3d differ diff --git a/models/mobs_chicken.b3d b/models/mobs_chicken.b3d new file mode 100644 index 0000000..167d10e Binary files /dev/null and b/models/mobs_chicken.b3d differ diff --git a/models/mobs_cow.b3d b/models/mobs_cow.b3d new file mode 100644 index 0000000..51f137a Binary files /dev/null and b/models/mobs_cow.b3d differ diff --git a/models/mobs_kitten.b3d b/models/mobs_kitten.b3d new file mode 100644 index 0000000..c2478fe Binary files /dev/null and b/models/mobs_kitten.b3d differ diff --git a/models/mobs_panda.b3d b/models/mobs_panda.b3d new file mode 100644 index 0000000..397be0c Binary files /dev/null and b/models/mobs_panda.b3d differ diff --git a/models/mobs_penguin.b3d b/models/mobs_penguin.b3d new file mode 100644 index 0000000..523946b Binary files /dev/null and b/models/mobs_penguin.b3d differ diff --git a/models/mobs_pumba.b3d b/models/mobs_pumba.b3d new file mode 100644 index 0000000..d984a18 Binary files /dev/null and b/models/mobs_pumba.b3d differ diff --git a/models/mobs_rat.b3d b/models/mobs_rat.b3d new file mode 100644 index 0000000..07e1fc9 Binary files /dev/null and b/models/mobs_rat.b3d differ diff --git a/models/mobs_sheep.b3d b/models/mobs_sheep.b3d new file mode 100644 index 0000000..4853e89 Binary files /dev/null and b/models/mobs_sheep.b3d differ diff --git a/panda.lua b/panda.lua new file mode 100644 index 0000000..290f34c --- /dev/null +++ b/panda.lua @@ -0,0 +1,89 @@ + +local S = mobs.intllib_animal + + +-- Panda by AspireMint (CC BY-SA 3.0) + +mobs:register_mob("mobs_animal:panda", { +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.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 = {"ethereal:bamboo", "bamboo:trunk"}, + view_range = 8, + drops = { + {name = "mobs:meat_raw", chance = 1, min = 1, max = 2} + }, + water_damage = 0.01, + 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("ethereal") and not mobs.custom_spawn_animal then + + 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 + }) +end + + +mobs:register_egg("mobs_animal:panda", S("Panda"), "mobs_panda_inv.png") diff --git a/penguin.lua b/penguin.lua new file mode 100644 index 0000000..316f026 --- /dev/null +++ b/penguin.lua @@ -0,0 +1,79 @@ + +local S = mobs.intllib_animal + + +-- Penguin by D00Med + +mobs:register_mob("mobs_animal:penguin", { +stepheight = 0.6, + type = "animal", + passive = true, + reach = 1, + hp_min = 5, + hp_max = 10, + armor = 200, + collisionbox = {-0.2, -0.0, -0.2, 0.2, 0.5, 0.2}, + visual = "mesh", + mesh = "mobs_penguin.b3d", + visual_size = {x = 0.25, y = 0.25}, + textures = { + {"mobs_penguin.png"} + }, + sounds = {}, + makes_footstep_sound = true, + walk_velocity = 1, + run_velocity = 2, + runaway = true, + jump = false, + stepheight = 1.1, + drops = { + {name = "mobs:meat_raw", chance = 1, min = 1, max = 1} + }, + water_damage = 0, + lava_damage = 4, + light_damage = 0, + fear_height = 2, + animation = { + speed_normal = 15, + stand_start = 1, + stand_end = 20, + walk_start = 25, + walk_end = 45, + fly_start = 75, -- swim animation + fly_end = 95 + -- 50-70 is slide/water idle + }, + fly_in = {"default:water_source", "default:water_flowing"}, + floats = 0, + follow = { + "group:food_fish_raw", "mobs_fish:clownfish", "mobs_fish:tropical", + "mobs_fish:clownfish_set", "mobs_fish:tropical_set", "xocean:fish_edible" + }, + view_range = 5, + + on_rightclick = function(self, clicker) + + -- feed or tame + if mobs:feed_tame(self, clicker, 4, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 5, 50, 80, false, nil) then return end + end +}) + + +if not mobs.custom_spawn_animal then + + 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 + }) +end + + +mobs:register_egg("mobs_animal:penguin", S("Penguin"), "mobs_penguin_inv.png") diff --git a/rat.lua b/rat.lua new file mode 100644 index 0000000..98135b0 --- /dev/null +++ b/rat.lua @@ -0,0 +1,107 @@ + +local S = mobs.intllib_animal + + +-- Rat by KPavel and PilzAdam (B3D model by sirrobzeroone) + +mobs:register_mob("mobs_animal:rat", { +stepheight = 0.6, + type = "animal", + passive = true, + hp_min = 1, + hp_max = 4, + armor = 200, + collisionbox = {-0.2, -1, -0.2, 0.2, -0.8, 0.2}, + visual = "mesh", + mesh = "mobs_rat.b3d", + textures = { + {"mobs_rat.png"}, + {"mobs_rat2.png"} + }, + makes_footstep_sound = false, + sounds = { + random = "mobs_rat" + }, + walk_velocity = 1, + run_velocity = 2, + runaway = true, + jump = true, + water_damage = 0, + lava_damage = 4, + light_damage = 0, + fear_height = 2, + + on_rightclick = function(self, clicker) + mobs:capture_mob(self, clicker, 50, 90, 0, true, "mobs_animal:rat") + end, +--[[ + do_custom = function(self, dtime) + + self.rat_timer = (self.rat_timer or 0) + dtime + + if self.rat_timer < 1 then return end -- every 1 second + + self.rat_timer = 0 + + local pos = self.object:get_pos() + + print("rat pos", pos.x, pos.y, pos.z, dtime) + + return false -- return but skip doing rest of API + end, +]] +--[[ + on_blast = function(obj, damage) + print ("--- damage is", damage) + print ("--- mob is", obj.object:get_luaentity().name) + -- return's do_damage, do_knockback and drops + return false, true, {"default:mese"} + end, +]] +}) + + +-- example on_spawn function +local function rat_spawn(self, pos) + self = self:get_luaentity() + print (self.name, pos.x, pos.y, pos.z) + self.hp_max = 100 + self.health = 100 +end + + +if not mobs.custom_spawn_animal then + + mobs:spawn({ + name = "mobs_animal:rat", + nodes = {"default:stone"}, + min_light = 3, + max_light = 9, + interval = 60, + chance = 8000, + max_height = 0, + -- on_spawn = rat_spawn, + }) +end + + +mobs:register_egg("mobs_animal:rat", S("Rat"), "mobs_rat_inv.png") + + +mobs:alias_mob("mobs:rat", "mobs_animal:rat") -- compatibility + + +-- cooked rat, yummy! +minetest.register_craftitem(":mobs:rat_cooked", { + description = S("Cooked Rat"), + inventory_image = "mobs_cooked_rat.png", + on_use = minetest.item_eat(3), + groups = {food_rat = 1, flammable = 2} +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:rat_cooked", + recipe = "mobs_animal:rat", + cooktime = 5 +}) diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..e267c81 --- /dev/null +++ b/readme.md @@ -0,0 +1,65 @@ +# minetest mod mobs_animal + +IT add animals for farmin like cows, dogs chicken or cats. + +## Information + +This mod is forked to improve compatibility backguard for 0.4 engine. It also provides some new translatins and ajustments + +![](screenshot.png) + +### Depends + +* mobs +* default + +Optionally + +* intlib +* lucky_blocks + +## Animals: + +### 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 when tamed. 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/screenshot.png b/screenshot.png new file mode 100644 index 0000000..b6db76d Binary files /dev/null and b/screenshot.png differ diff --git a/sheep.lua b/sheep.lua new file mode 100644 index 0000000..1f9911d --- /dev/null +++ b/sheep.lua @@ -0,0 +1,507 @@ +local S = mobs.intllib_animal +local random = math.random +local all_colours = { + {"black", S("Black"), "#212121b0"}, -- referenced down in mobs:spawn + {"blue", S("Blue"), "#015dbb70"}, + {"brown", S("Brown"), "#663300a0"}, -- referenced down in mobs:spawn + {"cyan", S("Cyan"), "#00b4bf70"}, + {"dark_green", S("Dark Green"), "#005b0770"}, + {"dark_grey", S("Dark Grey"), "#444444b0"}, -- referenced down in mobs:spawn + {"green", S("Green"), "#61ff0170"}, + {"grey", S("Grey"), "#919191b0"}, -- referenced down in mobs:spawn + {"magenta", S("Magenta"), "#ed03ad70"}, + {"orange", S("Orange"), "#ff840170"}, + {"pink", S("Pink"), "#ff85c470"}, + {"red", S("Red"), "#ff0000a0"}, + {"violet", S("Violet"), "#5c00c970"}, + {"white", S("White"), "#ffffffc0"}, -- referenced down in mobs:spawn + {"yellow", S("Yellow"), "#fff80070"} +} + + +-- Sheep by PilzAdam/K Pavel, texture converted to minetest by AMMOnym from Summerfield pack + +for _, col in ipairs(all_colours) do + + local drops_normal = { + {name = "mobs:mutton_raw", chance = 1, min = 1, max = 2}, + {name = "wool:" .. col[1], chance = 1, min = 1, max = 1} + } + + local drops_gotten = { + {name = "mobs:mutton_raw", chance = 1, min = 1, max = 2} + } + + local function horn_texture_sel(horns, gotten, colr) + + local base_text = "mobs_sheep_base.png" + local wool_shave_text = "mobs_sheep_wool.png" + local shav_text = "mobs_sheep_shaved.png" + local horn_text = "mobs_sheep_horns.png" + local col_override = colr and colr or col[3] + local col_text = "^[multiply:" .. col_override + + if gotten then + wool_shave_text = shav_text + col_text = "" + end + + -- results in unneccesary brackets for shaved but these are ignored by engine + local textures = base_text .. "^(" .. wool_shave_text .. col_text .. ")" + + if horns then + textures = base_text .. "^" .. horn_text .. "^(" .. wool_shave_text + .. col_text .. ")" + end + + return textures + end + + 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^[multiply:" .. col[3] .. ")"} + }, + gotten_texture = {"mobs_sheep_base.png^mobs_sheep_shaved.png"}, + makes_footstep_sound = true, + sounds = { + random = "mobs_sheep" + }, + walk_velocity = 1, + run_velocity = 2, + runaway = true, + jump = true, + jump_height = 6, + pushable = true, + drops = drops_normal, + water_damage = 0.01, + 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.drops = drops_normal + + local textures = horn_texture_sel(self.attribute_horns, self.gotten) + + self.object:set_properties({textures = {textures}}) + + -- base_texture must be kept up to date for static_save so horns persist + -- visually on server/game restart + self.base_texture = {textures} + end + end, + + on_breed = function(parent1, parent2) + + -- simple truth table P1/P2 horns/no_horns + local breed_out = { + ["P1_N"] = {["P2_N"] = 5 ,["P2_H"] = 50}, + ["P1_H"] = {["P2_N"] = 50,["P2_H"] = 95} + } + + local p1 = parent1.attribute_horns and "P1_H" or "P1_N" + local p2 = parent2.attribute_horns and "P2_H" or "P2_N" + local horn_chance = breed_out[p1][p2] + local horns = random(100) <= horn_chance + local pos = parent1.object:get_pos() + + -- can't see an easy way to pass horn attribute into + -- child entity def, handle all spawning here, unfortunate + -- code replication from mobs_redo api.lua line 1497+ + -- replace "self" with "parent1" and few other minor tweaks + ---------------------------------------------------- + pos.y = pos.y + 0.5 -- spawn child a little higher + + local mob = minetest.add_entity(pos, parent1.name) + local ent2 = mob:get_luaentity() + + -- remove horns from parents' texture string, lambs dont have horns + local textures = string.gsub(parent1.base_texture[1], + "%^mobs_sheep_horns.png", "") + + -- using specific child texture (if found) + if parent1.child_texture then + textures = parent1.child_texture[1] + end + + -- and resize to half height + mob:set_properties({ + textures = {textures}, + visual_size = { + x = parent1.base_size.x * .5, + y = parent1.base_size.y * .5 + }, + collisionbox = { + parent1.base_colbox[1] * .5, + parent1.base_colbox[2] * .5, + parent1.base_colbox[3] * .5, + parent1.base_colbox[4] * .5, + parent1.base_colbox[5] * .5, + parent1.base_colbox[6] * .5 + }, + selectionbox = { + parent1.base_selbox[1] * .5, + parent1.base_selbox[2] * .5, + parent1.base_selbox[3] * .5, + parent1.base_selbox[4] * .5, + parent1.base_selbox[5] * .5, + parent1.base_selbox[6] * .5 + } + }) + + -- tamed and owned by parents' owner + ent2.child = true + ent2.tamed = true + ent2.owner = parent1.owner + ent2.attribute_horns = horns + + -- stop mobs_redo api from spawning child + return false + end, + + on_grown = function(self) + + -- add the horns if we have horns when fully grown + local textures = horn_texture_sel(self.attribute_horns, self.gotten) + + self.object:set_properties({textures = {textures}}) + self.base_texture = {textures} + + local pos = self.object:get_pos() + + pos.y = pos.y + (self.collisionbox[2] * -1) - 0.4 + + self.object:set_pos(pos) + + -- jump slightly when fully grown so as not to fall into ground + self.object:set_velocity({x = 0, y = 2, z = 0 }) + end, + + on_rightclick = function(self, clicker) + + -- are we feeding? + if mobs:feed_tame(self, clicker, 8, true, true) then + + if not self.child then + + local textures = horn_texture_sel(self.attribute_horns, self.gotten) + + self.object:set_properties({textures = {textures}}) + self.base_texture = {textures} + end + + --if fed 7 times then sheep regrows wool + if self.food and self.food > 6 then + + self.gotten = false + self.drops = drops_normal + + local textures = horn_texture_sel(self.attribute_horns, self.gotten) + + self.object:set_properties({textures = {textures}}) + self.base_texture = {textures} + 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 + self.drops = drops_gotten + + local obj = minetest.add_item( + self.object:get_pos(), + ItemStack("wool:" .. col[1] .. " " .. random(3)) + ) + + if obj then + + obj:set_velocity({ + x = random(-1, 1), + y = 5, + z = random(-1, 1) + }) + end + + item:add_wear(650) -- 100 uses + + clicker:set_wielded_item(item) + + local textures = horn_texture_sel(self.attribute_horns, self.gotten) + + self.object:set_properties({textures = {textures}}) + self.base_texture = {textures} + + 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 + + -- only dye if colour option available and sheep not same colour + if c[1] == colr + and self.name ~= "mobs_animal:sheep_" .. colr then + + local pos = self.object:get_pos() + + -- add new coloured sheep + local mob = minetest.add_entity(pos, "mobs_animal:sheep_" .. colr) + local ent = mob:get_luaentity() + + if ent then + + -- add old sheep attributes + ent.attribute_horns = self.attribute_horns + ent.nametag = self.nametag + ent.owner = name + ent.tamed = true + ent.protected = self.protected + ent.fire_damage = self.fire_damage + + -- set sheep texture with colour override since we're + -- calling function inside different sheep + local textures = horn_texture_sel( + self.attribute_horns, false, colr) + + ent.base_texture = {textures} + ent.object:set_properties({ + textures = {textures}, + nametag = self.nametag + }) + + -- remove old sheep + self.object:remove() + + -- 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 + 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 + }) + + -- spawn egg + 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 + + local max_ht = 400 + local spawn_on = {"default:dirt_with_grass", "ethereal:green_dirt"} + local mod_ethereal = minetest.get_modpath("ethereal") + local spawn_chance = mod_ethereal and 12000 or 8000 + + mobs:spawn({ + name = "mobs_animal:sheep_white", + nodes = spawn_on, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = spawn_chance, + min_height = 0, + max_height = max_ht, + day_toggle = true, + active_object_count = 3, + + -- custom function to spawn sheep herds around main mob + on_spawn = function(self, pos) + + local nat_colors = {-- reference for all_colours table + ["white"] = 14, + ["grey"] = 8, + ["dark_grey"] = 6, + ["black"] = 1, + ["brown"] = 3 + } + + local function random_sheep(pos, first) + + local types = "white" + local color = all_colours[nat_colors["white"]][3] + + -- Random colour selection + -- black(1/8), brown(1/16), dark_grey(1/32), grey(1/32), 6/8 white + local ran_col = random(32) + + if ran_col <= 8 then + if ran_col == 1 then + types = "dark_grey" + elseif ran_col == 2 then + types = "grey" + elseif ran_col >= 3 and ran_col <= 4 then + types = "brown" + else + types = "black" + end + end + + -- 1/4 chance of lamb + local lamb + + if not first then + lamb = random(4) == 1 + end + + -- store returned entity data from mobs:add_mob, "nil" indicates the + -- rules in mobs:add_mob stopped mob from being spawned/created. + local entity = mobs:add_mob(pos, + {name = "mobs_animal:sheep_" .. types, child = lamb}) + + if entity and not lamb then + -- Set horns attribute, lower height will be rarer. + -- This wont affect mobs spawned by egg those only spawn hornless sheep. + local horns = random(max_ht) <= pos.y + + if horns then + + local text = "mobs_sheep_base.png^mobs_sheep_horns.png" + .."^(mobs_sheep_wool.png^[multiply:" + .. all_colours[nat_colors[types]][3] .. ")" + + entity.object:set_properties({textures = {text}}) + entity.base_texture = {text} + entity.attribute_horns = horns + end + end + end + + -- First Sheep, Randomize color/horns + self.object:remove() + + random_sheep(pos, true) + + -- Rest of herd + local nods = minetest.find_nodes_in_area_under_air( + {x = pos.x - 4, y = pos.y - 3, z = pos.z - 4}, + {x = pos.x + 4, y = pos.y + 3, z = pos.z + 4}, spawn_on) + + if nods and #nods > 0 then + + -- min herd of 3 + local iter = math.min(#nods, 3) + + for n = 1, iter do + + local pos2 = nods[random(#nods)] + + pos2.y = pos2.y + 2 + + if minetest.get_node(pos2).name == "air" then + + -- Add a sheep or lamb + random_sheep(pos2, false) + end + end + end + end + }) +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/sounds/mobs_bee.ogg b/sounds/mobs_bee.ogg new file mode 100644 index 0000000..5317518 Binary files /dev/null and b/sounds/mobs_bee.ogg differ diff --git a/sounds/mobs_chicken.1.ogg b/sounds/mobs_chicken.1.ogg new file mode 100644 index 0000000..9d74661 Binary files /dev/null and b/sounds/mobs_chicken.1.ogg differ diff --git a/sounds/mobs_chicken.2.ogg b/sounds/mobs_chicken.2.ogg new file mode 100644 index 0000000..8bf7bed Binary files /dev/null and b/sounds/mobs_chicken.2.ogg differ diff --git a/sounds/mobs_chicken.ogg b/sounds/mobs_chicken.ogg new file mode 100644 index 0000000..be64c94 Binary files /dev/null and b/sounds/mobs_chicken.ogg differ diff --git a/sounds/mobs_cow.ogg b/sounds/mobs_cow.ogg new file mode 100644 index 0000000..e919c6b Binary files /dev/null and b/sounds/mobs_cow.ogg differ diff --git a/sounds/mobs_kitten.ogg b/sounds/mobs_kitten.ogg new file mode 100644 index 0000000..a2a7acf Binary files /dev/null and b/sounds/mobs_kitten.ogg differ diff --git a/sounds/mobs_panda.ogg b/sounds/mobs_panda.ogg new file mode 100644 index 0000000..1c4c7d2 Binary files /dev/null and b/sounds/mobs_panda.ogg differ diff --git a/sounds/mobs_pig.ogg b/sounds/mobs_pig.ogg new file mode 100644 index 0000000..e7c7591 Binary files /dev/null and b/sounds/mobs_pig.ogg differ diff --git a/sounds/mobs_pig_angry.ogg b/sounds/mobs_pig_angry.ogg new file mode 100644 index 0000000..2a4f47b Binary files /dev/null and b/sounds/mobs_pig_angry.ogg differ diff --git a/sounds/mobs_rat.ogg b/sounds/mobs_rat.ogg new file mode 100644 index 0000000..0e99267 Binary files /dev/null and b/sounds/mobs_rat.ogg differ diff --git a/sounds/mobs_sheep.ogg b/sounds/mobs_sheep.ogg new file mode 100644 index 0000000..54f62cd Binary files /dev/null and b/sounds/mobs_sheep.ogg differ diff --git a/spawn_example.lua b/spawn_example.lua new file mode 100644 index 0000000..22814c1 --- /dev/null +++ b/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/textures/mobs_bee.png b/textures/mobs_bee.png new file mode 100644 index 0000000..63b0c2f Binary files /dev/null and b/textures/mobs_bee.png differ diff --git a/textures/mobs_bee_inv.png b/textures/mobs_bee_inv.png new file mode 100644 index 0000000..94d5ace Binary files /dev/null and b/textures/mobs_bee_inv.png differ diff --git a/textures/mobs_beehive.png b/textures/mobs_beehive.png new file mode 100644 index 0000000..7bd1401 Binary files /dev/null and b/textures/mobs_beehive.png differ diff --git a/textures/mobs_bucket_milk.png b/textures/mobs_bucket_milk.png new file mode 100644 index 0000000..c897957 Binary files /dev/null and b/textures/mobs_bucket_milk.png differ diff --git a/textures/mobs_bunny_brown.png b/textures/mobs_bunny_brown.png new file mode 100644 index 0000000..3a71d94 Binary files /dev/null and b/textures/mobs_bunny_brown.png differ diff --git a/textures/mobs_bunny_evil.png b/textures/mobs_bunny_evil.png new file mode 100644 index 0000000..683170d Binary files /dev/null and b/textures/mobs_bunny_evil.png differ diff --git a/textures/mobs_bunny_grey.png b/textures/mobs_bunny_grey.png new file mode 100644 index 0000000..d41d6c1 Binary files /dev/null and b/textures/mobs_bunny_grey.png differ diff --git a/textures/mobs_bunny_inv.png b/textures/mobs_bunny_inv.png new file mode 100644 index 0000000..762b713 Binary files /dev/null and b/textures/mobs_bunny_inv.png differ diff --git a/textures/mobs_bunny_white.png b/textures/mobs_bunny_white.png new file mode 100644 index 0000000..0445e88 Binary files /dev/null and b/textures/mobs_bunny_white.png differ diff --git a/textures/mobs_butter.png b/textures/mobs_butter.png new file mode 100644 index 0000000..2e84349 Binary files /dev/null and b/textures/mobs_butter.png differ diff --git a/textures/mobs_cheese.png b/textures/mobs_cheese.png new file mode 100644 index 0000000..04e03d8 Binary files /dev/null and b/textures/mobs_cheese.png differ diff --git a/textures/mobs_cheeseblock.png b/textures/mobs_cheeseblock.png new file mode 100644 index 0000000..dfa7c18 Binary files /dev/null and b/textures/mobs_cheeseblock.png differ diff --git a/textures/mobs_chick.png b/textures/mobs_chick.png new file mode 100644 index 0000000..9fb3d5f Binary files /dev/null and b/textures/mobs_chick.png differ diff --git a/textures/mobs_chicken.png b/textures/mobs_chicken.png new file mode 100644 index 0000000..9f16813 Binary files /dev/null and b/textures/mobs_chicken.png differ diff --git a/textures/mobs_chicken_black.png b/textures/mobs_chicken_black.png new file mode 100644 index 0000000..2066e33 Binary files /dev/null and b/textures/mobs_chicken_black.png differ diff --git a/textures/mobs_chicken_brown.png b/textures/mobs_chicken_brown.png new file mode 100644 index 0000000..05e284c Binary files /dev/null and b/textures/mobs_chicken_brown.png differ diff --git a/textures/mobs_chicken_cooked.png b/textures/mobs_chicken_cooked.png new file mode 100644 index 0000000..bda35f3 Binary files /dev/null and b/textures/mobs_chicken_cooked.png differ diff --git a/textures/mobs_chicken_egg_fried.png b/textures/mobs_chicken_egg_fried.png new file mode 100644 index 0000000..ad144a5 Binary files /dev/null and b/textures/mobs_chicken_egg_fried.png differ diff --git a/textures/mobs_chicken_feather.png b/textures/mobs_chicken_feather.png new file mode 100644 index 0000000..b6ae211 Binary files /dev/null and b/textures/mobs_chicken_feather.png differ diff --git a/textures/mobs_chicken_inv.png b/textures/mobs_chicken_inv.png new file mode 100644 index 0000000..ccaca24 Binary files /dev/null and b/textures/mobs_chicken_inv.png differ diff --git a/textures/mobs_chicken_raw.png b/textures/mobs_chicken_raw.png new file mode 100644 index 0000000..3987a4a Binary files /dev/null and b/textures/mobs_chicken_raw.png differ diff --git a/textures/mobs_chicken_white.png b/textures/mobs_chicken_white.png new file mode 100644 index 0000000..87ab690 Binary files /dev/null and b/textures/mobs_chicken_white.png differ diff --git a/textures/mobs_cooked_rat.png b/textures/mobs_cooked_rat.png new file mode 100644 index 0000000..daad3be Binary files /dev/null and b/textures/mobs_cooked_rat.png differ diff --git a/textures/mobs_cow.png b/textures/mobs_cow.png new file mode 100644 index 0000000..4c61f1c Binary files /dev/null and b/textures/mobs_cow.png differ diff --git a/textures/mobs_cow2.png b/textures/mobs_cow2.png new file mode 100644 index 0000000..11b60e2 Binary files /dev/null and b/textures/mobs_cow2.png differ diff --git a/textures/mobs_cow_inv.png b/textures/mobs_cow_inv.png new file mode 100644 index 0000000..a34270c Binary files /dev/null and b/textures/mobs_cow_inv.png differ diff --git a/textures/mobs_glass_milk.png b/textures/mobs_glass_milk.png new file mode 100644 index 0000000..59f1ba1 Binary files /dev/null and b/textures/mobs_glass_milk.png differ diff --git a/textures/mobs_hairball.png b/textures/mobs_hairball.png new file mode 100644 index 0000000..0628c95 Binary files /dev/null and b/textures/mobs_hairball.png differ diff --git a/textures/mobs_honey_block.png b/textures/mobs_honey_block.png new file mode 100644 index 0000000..8f05e77 Binary files /dev/null and b/textures/mobs_honey_block.png differ diff --git a/textures/mobs_honey_inv.png b/textures/mobs_honey_inv.png new file mode 100644 index 0000000..e70666d Binary files /dev/null and b/textures/mobs_honey_inv.png differ diff --git a/textures/mobs_kitten_black.png b/textures/mobs_kitten_black.png new file mode 100755 index 0000000..045bcac Binary files /dev/null and b/textures/mobs_kitten_black.png differ diff --git a/textures/mobs_kitten_ginger.png b/textures/mobs_kitten_ginger.png new file mode 100755 index 0000000..1707c2e Binary files /dev/null and b/textures/mobs_kitten_ginger.png differ diff --git a/textures/mobs_kitten_inv.png b/textures/mobs_kitten_inv.png new file mode 100644 index 0000000..6afa61f Binary files /dev/null and b/textures/mobs_kitten_inv.png differ diff --git a/textures/mobs_kitten_sandy.png b/textures/mobs_kitten_sandy.png new file mode 100755 index 0000000..052f04e Binary files /dev/null and b/textures/mobs_kitten_sandy.png differ diff --git a/textures/mobs_kitten_splotchy.png b/textures/mobs_kitten_splotchy.png new file mode 100755 index 0000000..1fad994 Binary files /dev/null and b/textures/mobs_kitten_splotchy.png differ diff --git a/textures/mobs_kitten_striped.png b/textures/mobs_kitten_striped.png new file mode 100755 index 0000000..4d1a0cc Binary files /dev/null and b/textures/mobs_kitten_striped.png differ diff --git a/textures/mobs_mutton_cooked.png b/textures/mobs_mutton_cooked.png new file mode 100644 index 0000000..68efccc Binary files /dev/null and b/textures/mobs_mutton_cooked.png differ diff --git a/textures/mobs_mutton_raw.png b/textures/mobs_mutton_raw.png new file mode 100644 index 0000000..5ae8156 Binary files /dev/null and b/textures/mobs_mutton_raw.png differ diff --git a/textures/mobs_panda.png b/textures/mobs_panda.png new file mode 100644 index 0000000..dbdc55c Binary files /dev/null and b/textures/mobs_panda.png differ diff --git a/textures/mobs_panda_inv.png b/textures/mobs_panda_inv.png new file mode 100644 index 0000000..c382253 Binary files /dev/null and b/textures/mobs_panda_inv.png differ diff --git a/textures/mobs_panda_viking.png b/textures/mobs_panda_viking.png new file mode 100644 index 0000000..80de51d Binary files /dev/null and b/textures/mobs_panda_viking.png differ diff --git a/textures/mobs_penguin.png b/textures/mobs_penguin.png new file mode 100644 index 0000000..f7928d3 Binary files /dev/null and b/textures/mobs_penguin.png differ diff --git a/textures/mobs_penguin_inv.png b/textures/mobs_penguin_inv.png new file mode 100644 index 0000000..ed69b1d Binary files /dev/null and b/textures/mobs_penguin_inv.png differ diff --git a/textures/mobs_pork_cooked.png b/textures/mobs_pork_cooked.png new file mode 100644 index 0000000..a32d2e6 Binary files /dev/null and b/textures/mobs_pork_cooked.png differ diff --git a/textures/mobs_pork_raw.png b/textures/mobs_pork_raw.png new file mode 100644 index 0000000..2aa5368 Binary files /dev/null and b/textures/mobs_pork_raw.png differ diff --git a/textures/mobs_pumba.png b/textures/mobs_pumba.png new file mode 100644 index 0000000..7133c41 Binary files /dev/null and b/textures/mobs_pumba.png differ diff --git a/textures/mobs_pumba_inv.png b/textures/mobs_pumba_inv.png new file mode 100644 index 0000000..839f17d Binary files /dev/null and b/textures/mobs_pumba_inv.png differ diff --git a/textures/mobs_rabbit_cooked.png b/textures/mobs_rabbit_cooked.png new file mode 100644 index 0000000..f9f4c53 Binary files /dev/null and b/textures/mobs_rabbit_cooked.png differ diff --git a/textures/mobs_rabbit_hide.png b/textures/mobs_rabbit_hide.png new file mode 100644 index 0000000..9b34871 Binary files /dev/null and b/textures/mobs_rabbit_hide.png differ diff --git a/textures/mobs_rabbit_raw.png b/textures/mobs_rabbit_raw.png new file mode 100644 index 0000000..18d9e80 Binary files /dev/null and b/textures/mobs_rabbit_raw.png differ diff --git a/textures/mobs_rat.png b/textures/mobs_rat.png new file mode 100644 index 0000000..f854b09 Binary files /dev/null and b/textures/mobs_rat.png differ diff --git a/textures/mobs_rat2.png b/textures/mobs_rat2.png new file mode 100644 index 0000000..0c222d6 Binary files /dev/null and b/textures/mobs_rat2.png differ diff --git a/textures/mobs_rat_inv.png b/textures/mobs_rat_inv.png new file mode 100644 index 0000000..d88e616 Binary files /dev/null and b/textures/mobs_rat_inv.png differ diff --git a/textures/mobs_sheep_base.png b/textures/mobs_sheep_base.png new file mode 100644 index 0000000..ac5fec2 Binary files /dev/null and b/textures/mobs_sheep_base.png differ diff --git a/textures/mobs_sheep_horns.png b/textures/mobs_sheep_horns.png new file mode 100644 index 0000000..960c130 Binary files /dev/null and b/textures/mobs_sheep_horns.png differ diff --git a/textures/mobs_sheep_inv.png b/textures/mobs_sheep_inv.png new file mode 100644 index 0000000..aedf2f0 Binary files /dev/null and b/textures/mobs_sheep_inv.png differ diff --git a/textures/mobs_sheep_shaved.png b/textures/mobs_sheep_shaved.png new file mode 100644 index 0000000..83c9650 Binary files /dev/null and b/textures/mobs_sheep_shaved.png differ diff --git a/textures/mobs_sheep_wool.png b/textures/mobs_sheep_wool.png new file mode 100644 index 0000000..dc871f2 Binary files /dev/null and b/textures/mobs_sheep_wool.png differ diff --git a/textures/mobs_wooden_bucket_milk.png b/textures/mobs_wooden_bucket_milk.png new file mode 100644 index 0000000..a544fd5 Binary files /dev/null and b/textures/mobs_wooden_bucket_milk.png differ diff --git a/warthog.lua b/warthog.lua new file mode 100644 index 0000000..46cbf77 --- /dev/null +++ b/warthog.lua @@ -0,0 +1,127 @@ + +local S = mobs.intllib_animal + + +-- 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.01, + 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, + + 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 + }, + + 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, + min_height = 0, + max_height = 200, + day_toggle = true + }) +end + + +-- spawn egg +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 +})