1
0
mirror of https://github.com/sys4-fr/server-nalc.git synced 2025-06-28 06:11:47 +02:00

Change mobs api and add new mobs from (water_mobs, pmobs, kpgmobs, mob_horse)

This commit is contained in:
sys4
2017-11-11 17:37:21 +01:00
parent d3a7d82233
commit 6241f4ecaf
491 changed files with 74864 additions and 12913 deletions

194
mods/mobs_animal/bee.lua Normal file
View File

@ -0,0 +1,194 @@
local S = mobs.intllib
-- Bee by KrupnoPavel
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.x",
textures = {
{"mobs_bee.png"},
},
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 = 2,
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,
})
mobs:spawn({
name = "mobs_animal:bee",
nodes = {"group:flower"},
min_light = 10,
chance = 9000,
min_height = 0,
day_toggle = true,
})
mobs:register_egg("mobs_animal:bee", S("Bee"), "mobs_bee_inv.png", 0)
-- compatibility
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),
})
-- 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},
sounds = default.node_sound_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", "size[8,6]"
..default.gui_bg..default.gui_bg_img..default.gui_slots
.. "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:is_player() then
minetest.set_node(pos, {name = "mobs:beehive", param2 = 1})
if math.random(1, 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,
})
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.node_sound_dirt_defaults(),
})
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 = 6,
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 > 19 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
})

124
mods/mobs_animal/bunny.lua Normal file
View File

@ -0,0 +1,124 @@
local S = mobs.intllib
-- Bunny by ExeterDad
mobs:register_mob("mobs_animal:bunny", {
type = "animal",
passive = true,
reach = 1,
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,
jump = true,
drops = {
{name = "mobs:meat_raw", chance = 1, min = 1, max = 1},
},
water_damage = 1,
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()
if item:get_name() == "mobs:lava_orb" then
if not mobs.is_creative(clicker:get_player_name()) then
item:take_item()
clicker:set_wielded_item(item)
end
self.object:set_properties({
textures = {"mobs_bunny_evil.png"},
})
self.type = "monster"
self.health = 20
return
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,
attack_type = "dogfight",
damage = 5,
})
local spawn_on = "default:dirt_with_grass"
if minetest.get_modpath("ethereal") then
spawn_on = "ethereal:prairie_dirt"
end
mobs:spawn({
name = "mobs_animal:bunny",
nodes = {spawn_on},
min_light = 10,
chance = 15000,
min_height = 0,
day_toggle = true,
})
mobs:register_egg("mobs_animal:bunny", S("Bunny"), "mobs_bunny_inv.png", 0)
mobs:alias_mob("mobs:bunny", "mobs_animal:bunny") -- compatibility

View File

@ -0,0 +1,287 @@
local S = mobs.intllib
-- Chicken by JK Murray
mobs:register_mob("mobs_animal:chicken", {
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.x",
-- seems a lot of textures but this fixes the problem with the model
textures = {
{"mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png",
"mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png"},
{"mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png",
"mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png"},
},
child_texture = {
{"mobs_chick.png", "mobs_chick.png", "mobs_chick.png", "mobs_chick.png",
"mobs_chick.png", "mobs_chick.png", "mobs_chick.png", "mobs_chick.png", "mobs_chick.png"},
},
makes_footstep_sound = true,
sounds = {
random = "mobs_chicken",
},
walk_velocity = 1,
run_velocity = 3,
runaway = true,
drops = {
{name = "mobs:chicken_raw", chance = 1, min = 2, max = 2},
{name = "mobs:chicken_feather", chance = 3, min = 1, max = 2},
},
water_damage = 1,
lava_damage = 5,
light_damage = 0,
fall_damage = 0,
fall_speed = -8,
fear_height = 5,
animation = {
speed_normal = 15,
stand_start = 0,
stand_end = 1, -- 20
walk_start = 20,
walk_end = 40,
},
follow = {"farming:seed_wheat", "farming:seed_cotton"},
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(1, 100) > 1 then
return
end
local pos = self.object:get_pos()
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"
end
mobs:spawn({
name = "mobs_animal:chicken",
nodes = {spawn_on},
min_light = 10,
chance = 15000,
active_object_count = 2,
min_height = 0,
day_toggle = true,
})
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(minetest.get_player_by_name(self.playername) or self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 1},
}, nil)
end,
hit_node = function(self, pos, node)
if math.random(1, 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 mob = minetest.add_entity(pos, "mobs_animal:chicken")
local ent2 = mob:get_luaentity()
mob:set_properties({
textures = ent2.child_texture[1],
visual_size = {
x = ent2.base_size.x / 2,
y = ent2.base_size.y / 2
},
collisionbox = {
ent2.base_colbox[1] / 2,
ent2.base_colbox[2] / 2,
ent2.base_colbox[3] / 2,
ent2.base_colbox[4] / 2,
ent2.base_colbox[5] / 2,
ent2.base_colbox[6] / 2
},
})
ent2.child = true
ent2.tamed = true
ent2.owner = self.playername
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
obj:setvelocity({
x = dir.x * egg_VELOCITY,
y = dir.y * egg_VELOCITY,
z = dir.z * egg_VELOCITY
})
obj:setacceleration({
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 = {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),
})
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),
})
-- cooked chicken
minetest.register_craftitem(":mobs:chicken_cooked", {
description = S("Cooked Chicken"),
inventory_image = "mobs_chicken_cooked.png",
on_use = minetest.item_eat(6),
})
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",
})

200
mods/mobs_animal/cow.lua Normal file
View File

@ -0,0 +1,200 @@
local S = mobs.intllib
-- Cow by Krupnovpavel (additional texture by JurajVajda)
mobs:register_mob("mobs_animal:cow", {
type = "animal",
passive = false,
attack_type = "dogfight",
reach = 2,
damage = 4,
hp_min = 5,
hp_max = 20,
armor = 200,
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4},
visual = "mesh",
mesh = "mobs_cow.x",
textures = {
{"mobs_cow.png"},
{"mobs_cow2.png"},
},
makes_footstep_sound = true,
sounds = {
random = "mobs_cow",
},
walk_velocity = 1,
run_velocity = 2,
jump = true,
drops = {
{name = "mobs:meat_raw", chance = 1, min = 1, max = 3},
{name = "mobs:leather", chance = 1, min = 1, max = 2},
{name = "maptools:silver_coin", chance = 10, min = 1, max = 1,},
},
water_damage = 1,
lava_damage = 5,
light_damage = 0,
animation = {
speed_normal = 15,
speed_run = 15,
stand_start = 0,
stand_end = 30,
walk_start = 35,
walk_end = 65,
run_start = 105,
run_end = 135,
punch_start = 70,
punch_end = 100,
},
follow = "farming:wheat",
view_range = 8,
replace_rate = 10,
-- replace_what = {"default:grass_3", "default:grass_4", "default:grass_5", "farming:wheat_8"},
replace_what = {
{"group:grass", "air", 0},
{"default:dirt_with_grass", "default:dirt", -1}
},
replace_with = "mobs:dung",
fear_height = 2,
on_rightclick = function(self, clicker)
-- feed or tame
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, 60, false, nil) then return end
local tool = clicker:get_wielded_item()
local name = clicker:get_player_name()
-- milk cow with empty bucket
if tool:get_name() == "bucket: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()
inv:remove_item("main", "bucket:bucket_empty")
if inv:room_for_item("main", {name = "mobs:bucket_milk"}) then
clicker:get_inventory():add_item("main", "mobs:bucket_milk")
else
local pos = self.object:get_pos()
pos.y = pos.y + 0.5
minetest.add_item(pos, {name = "mobs:bucket_milk"})
end
self.gotten = true -- milked
return
end
end,
})
local spawn_on = "default:dirt_with_grass"
if minetest.get_modpath("ethereal") then
spawn_on = "ethereal:green_dirt"
end
mobs:spawn({
name = "mobs_animal:cow",
nodes = {spawn_on},
min_light = 10,
chance = 15000,
min_height = 0,
max_height = 31000,
day_toggle = true,
})
mobs:register_egg("mobs_animal:cow", S("Cow"), "default_grass.png", 1)
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'),
})
-- cheese wedge
minetest.register_craftitem(":mobs:cheese", {
description = S("Cheese"),
inventory_image = "mobs_cheese.png",
on_use = minetest.item_eat(4),
})
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 = {crumbly = 3},
sounds = default.node_sound_dirt_defaults()
})
minetest.register_craft({
output = "mobs:cheeseblock",
recipe = {
{'mobs:cheese', 'mobs:cheese', 'mobs:cheese'},
{'mobs:cheese', 'mobs:cheese', 'mobs:cheese'},
{'mobs:cheese', 'mobs:cheese', 'mobs:cheese'},
}
})
minetest.register_craft({
output = "mobs:cheese 9",
recipe = {
{'mobs:cheeseblock'},
}
})
-- Dung (from factory's fertilizer)
minetest.register_node(":mobs:dung", {
tiles = {"default_dirt.png"},
inventory_image = "mobs_dung.png",
description = "Cow dung",
drawtype = "nodebox",
paramtype = "light",
is_ground_content = true,
groups = {snappy = 3, attached_node = 1},
node_box = {
type = "fixed",
fixed = {
{-0.1875, -0.5, -0.1875, 0.1875, -0.4375, 0.1875},
{-0.125, -0.4375, -0.125, 0.125, -0.375, 0.125},
{0, -0.375, -0.0625, 0.0625, -0.3125, 0.0625},
{0, -0.3125, -0.0625, 0.0625, -0.25, 0},
{-0.0625, -0.375, -0.0625, 0, -0.3125, 0},
}
}
})
minetest.register_craft({
type = "fuel",
recipe = "mobs:dung",
burntime = "8",
})

View File

@ -0,0 +1,4 @@
default
mobs
intllib?
lucky_block?

View File

@ -0,0 +1 @@
Adds farm animals.

107
mods/mobs_animal/goat.lua Executable file
View File

@ -0,0 +1,107 @@
-- Goat by DonBatman
mobs:register_mob("mobs_animal:goat", {
-- animal, monster, npc, barbarian
type = "animal",
-- aggressive, does 5 damage to player when threatened
passive = false,
group_attack = true,
attack_type = "dogfight",
reach = 2,
damage = 3,
-- health & armor
hp_min = 10,
hp_max = 20,
armor = 200,
-- textures and model
collisionbox = {-0.3, -0.01, -0.3, 0.3, 0.75, 0.3},
visual = "mesh",
mesh = "mobs_goat.b3d",
drawtype = "front",
textures = {
{"mobs_goat_white.png"},
{"mobs_goat_brown.png"},
{"mobs_goat_grey.png"},
},
blood_texture = "mobs_blood.png",
visual_size = {x=2,y=2},
-- sounds
makes_footstep_sound = true,
sounds = {
random = "mobs_sheep",
},
-- speed and jump
walk_velocity = 1.5,
run_velocity = 3,
jump = true,
-- drops raw meat when dead
drops = {
{name = "mobs:meat_raw",
chance = 1, min = 2, max = 4},
{name = "maptools:silver_coin",
chance = 10, min = 1, max = 1,},
},
-- damaged by
water_damage = 1,
lava_damage = 5,
light_damage = 0,
-- model animation
animation = {
speed_normal = 25, speed_run = 30,
stand_start = 0, stand_end = 60, -- head down/up
walk_start = 80, walk_end = 110, -- walk
run_start = 160, run_end = 198, -- walk
punch_start = 120, punch_end = 150, -- attack
},
-- follows wheat
follow = "farming:wheat",
view_range = 10,
-- replace grass/wheat with air (eat)
replace_rate = 50,
replace_what = {"group:flora"},
replace_with = "air",
on_rightclick = function(self, clicker)
-- feed or tame
if mobs:feed_tame(self, clicker, 8, true, true) then
return
end
local tool = clicker:get_wielded_item()
-- milk goat with empty bucket
if tool:get_name() == "bucket:bucket_empty" then
if self.child == true then
return
end
if self.gotten == true then
minetest.chat_send_player(clicker:get_player_name(),
"Goat already milked!")
return
end
local inv = clicker:get_inventory()
inv:remove_item("main", "bucket:bucket_empty")
if inv:room_for_item("main", {name = "mobs:bucket_milk"}) then
clicker:get_inventory():add_item("main", "mobs:bucket_milk")
else
local pos = self.object:getpos()
pos.y = pos.y + 0.5
minetest.add_item(pos, {name = "mobs:bucket_milk"})
end
self.gotten = true -- milked
return
end
mobs:capture_mob(self, clicker, 0, 5, 60, false, nil)
end,
})
-- spawn on dirt_with_grass between -1 and 20 light, 1 in 20000 chance, 1 goat in area up to 31000 in height
mobs:spawn_specific("mobs_animal:goat", {"default:dirt_with_grass"}, {"air"}, -1, 20, 30, 20000, 1, -31000, 31000, true)
-- register spawn egg
mobs:register_egg("mobs_animal:goat", "Goat", "mobs_goat_inv.png", 1)
mobs:alias_mob("mobs:goat", "mobs_animal:goat")

24
mods/mobs_animal/init.lua Normal file
View File

@ -0,0 +1,24 @@
local path = minetest.get_modpath("mobs_animal")
-- Load support for intllib.
local MP = minetest.get_modpath(minetest.get_current_modname())
local S, NS = dofile(MP.."/intllib.lua")
mobs.intllib = S
-- 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 .. "/goat.lua") -- NALC(sys4 fork MFF)
dofile(path .. "/penguin.lua") -- D00Med
dofile(path .. "/lucky_block.lua")
print (S("[MOD] Mobs Redo 'Animals' loaded"))

View File

@ -0,0 +1,45 @@
-- Fallback functions for when `intllib` is not installed.
-- Code released under Unlicense <http://unlicense.org>.
-- Get the latest version of this file at:
-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua
local function format(str, ...)
local args = { ... }
local function repl(escape, open, num, close)
if escape == "" then
local replacement = tostring(args[tonumber(num)])
if open == "" then
replacement = replacement..close
end
return replacement
else
return "@"..open..num..close
end
end
return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl))
end
local gettext, ngettext
if minetest.get_modpath("intllib") then
if intllib.make_gettext_pair then
-- New method using gettext.
gettext, ngettext = intllib.make_gettext_pair()
else
-- Old method using text files.
gettext = intllib.Getter()
end
end
-- Fill in missing functions.
gettext = gettext or function(msgid, ...)
return format(msgid, ...)
end
ngettext = ngettext or function(msgid, msgid_plural, n, ...)
return format(n==1 and msgid or msgid_plural, ...)
end
return gettext, ngettext

View File

@ -0,0 +1,80 @@
local S = mobs.intllib
-- Kitten by Jordach / BFD
mobs:register_mob("mobs_animal:kitten", {
type = "animal",
passive = true,
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,
run_velocity = 2,
runaway = true,
jump = false,
drops = {
{name = "farming:string", chance = 1, min = 1, max = 1},
},
water_damage = 1,
lava_damage = 5,
fear_height = 3,
animation = {
speed_normal = 42,
stand_start = 97,
stand_end = 192,
walk_start = 0,
walk_end = 96,
},
follow = {"mobs_animal:rat",
"ethereal:fish_raw",
"mobs_fish:clownfish",
"mobs_fish:tropical",
"fishing:fish_raw",
"fishing:clownfish_raw",
"fishing:bluewhite_raw",
"fishing:exoticfish_raw",
"fishing:carp_raw",
"fishing:perch_raw",
"fishing:catfish_raw",
},
view_range = 8,
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
end
})
mobs:spawn({
name = "mobs_animal:kitten",
nodes = {"default:dirt_with_grass", "ethereal:grove_dirt"},
min_light = 12,
chance = 22000,
min_height = 0,
max_height = 31000,
day_toggle = true,
})
mobs:register_egg("mobs_animal:kitten", S("Kitten"), "mobs_kitten_inv.png", 0)
mobs:alias_mob("mobs:kitten", "mobs_animal:kitten") -- compatibility

View File

@ -0,0 +1,21 @@
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.

View File

@ -0,0 +1,182 @@
# 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 <EMAIL@ADDRESS>, 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"
#: 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"
#: warthog.lua
msgid "Warthog"
msgstr "Warzenschwein"
#: warthog.lua
msgid "Raw Porkchop"
msgstr "Rohes Schweinekotelett"
#: warthog.lua
msgid "Cooked Porkchop"
msgstr "Gekochtes Schweinekotelett"

View File

@ -0,0 +1,180 @@
# 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 <EMAIL@ADDRESS>, 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 <fat115@framasoft.org>\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"
#: 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"
#: 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"

View File

@ -0,0 +1,179 @@
# 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 <h4mlet@riseup.net>, 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 <h4mlet@riseup.net>\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"
#: 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"
#: 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"

View File

@ -0,0 +1,178 @@
# 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 <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-13 16:00+0200\n"
"PO-Revision-Date: 2017-08-13 16:00+ZONE\n"
"Last-Translator: Oleg720 <olegsiriak@yandex.ru>\n"
"Language-Team: 720 Locales <>\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 "Кролик"
#: 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 "[МОД] Mobs Redo 'Animals' загружен"
#: 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 "@1 Овец"
#: warthog.lua
msgid "Warthog"
msgstr "Бородавочник"
#: warthog.lua
msgid "Raw Porkchop"
msgstr "Отбивные из свинины"
#: warthog.lua
msgid "Cooked Porkchop"
msgstr "Приготовленные отбивные"

View File

@ -0,0 +1,178 @@
# 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 <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""
#: 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 ""
#: warthog.lua
msgid "Warthog"
msgstr ""
#: warthog.lua
msgid "Raw Porkchop"
msgstr ""
#: warthog.lua
msgid "Cooked Porkchop"
msgstr ""

View File

@ -0,0 +1,180 @@
# 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 <EMAIL@ADDRESS>, 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"
#: 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"
#: warthog.lua
msgid "Warthog"
msgstr "Domuz"
#: warthog.lua
msgid "Raw Porkchop"
msgstr "Çiğ pirzola"
#: warthog.lua
msgid "Cooked Porkchop"
msgstr "Pişmiş pirzola"

View File

@ -0,0 +1,21 @@
if minetest.get_modpath("lucky_block") then
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"}, 8},
{"spw", "mobs:kitten", 2},
{"tro", "default:nyancat", "mobs_kitten", true},
{"exp"},
})
end

View File

@ -0,0 +1 @@
name = mobs_animal

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,80 @@
local S = mobs.intllib
-- Penguin by D00Med
mobs:register_mob("mobs_animal:penguin", {
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 = {"ethereal:fish_raw",
"mobs_fish:clownfish",
"mobs_fish:tropical",
"fishing:fish_raw",
"fishing:clownfish_raw",
"fishing:bluewhite_raw",
"fishing:exoticfish_raw",
"fishing:carp_raw",
"fishing:perch_raw",
"fishing:catfish_raw",
},
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,
})
mobs:spawn({
name = "mobs_animal:penguin",
nodes = {"default:snowblock"},
min_light = 10,
chance = 20000,
min_height = 0,
day_toggle = true,
})
mobs:register_egg("mobs_animal:penguin", S("Penguin"), "default_snow.png", 1)

97
mods/mobs_animal/rat.lua Normal file
View File

@ -0,0 +1,97 @@
local S = mobs.intllib
-- Rat by PilzAdam
mobs:register_mob("mobs_animal:rat", {
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,
]]
})
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
mobs:spawn({
name = "mobs_animal:rat",
nodes = {"default:stone"},
min_light = 3,
active_object_count = 2,
max_height = 0,
-- on_spawn = rat_spawn,
})
mobs:register_egg("mobs_animal:rat", S("Rat"), "mobs_rat_inventory.png", 0)
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),
})
minetest.register_craft({
type = "cooking",
output = "mobs:rat_cooked",
recipe = "mobs:rat",
cooktime = 5,
})

View File

@ -0,0 +1,42 @@
ANIMAL MOBS
Bee
- Tends to buzz around flowers and gives honey when killed, you can also right-click a bee to pick it up and place in inventory. 3x bee's in a row can craft a beehive.
Bunny
- Bunnies appear in green grass areas (prairie biome in ethereal) and can be tamed with 4 carrots or grass. Can also be picked up and placed in inventory and gives 1-2 meat 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.
Rat
- Typically found around stone they can be picked up and cooked for eating.
Sheep
- Green grass and wheat munchers that can be clipped using shears to give 1-3 wool. Feed sheep 8x wheat to regrow wool, tame and breed. Right-click a tamed sheep with dye to change it's colour. Will drop 1-3 meat 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.
Note: After breeding animals need to rest for 4 minutes, baby animals take 4 minutes to grow up and feeding them helps them grow quicker...
Lucky Blocks: 14

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

207
mods/mobs_animal/sheep.lua Normal file
View File

@ -0,0 +1,207 @@
local S = mobs.intllib
local all_colours = {
{"black", S("Black"), "#000000b0"},
{"blue", S("Blue"), "#015dbb70"},
{"brown", S("Brown"), "#663300a0"},
{"cyan", S("Cyan"), "#01ffd870"},
{"dark_green", S("Dark Green"), "#005b0770"},
{"dark_grey", S("Dark Grey"), "#303030b0"},
{"green", S("Green"), "#61ff0170"},
{"grey", S("Grey"), "#5b5b5bb0"},
{"magenta", S("Magenta"), "#ff05bb70"},
{"orange", S("Orange"), "#ff840170"},
{"pink", S("Pink"), "#ff65b570"},
{"red", S("Red"), "#ff0000a0"},
{"violet", S("Violet"), "#2000c970"},
{"white", S("White"), "#abababc0"},
{"yellow", S("Yellow"), "#e3ff0070"},
}
-- Sheep by PilzAdam, texture converted to minetest by AMMOnym from Summerfield pack
for _, col in ipairs(all_colours) do
mobs:register_mob("mobs_animal:sheep_"..col[1], {
type = "animal",
passive = true,
hp_min = 8,
hp_max = 10,
armor = 200,
collisionbox = {-0.5, -1, -0.5, 0.5, 0.3, 0.5},
visual = "mesh",
mesh = "mobs_sheep.b3d",
textures = {
{"mobs_sheep_base.png^(mobs_sheep_wool.png^[colorize:" .. col[3] .. ")"},
},
gotten_texture = {"mobs_sheep_shaved.png"},
gotten_mesh = "mobs_sheep_shaved.b3d",
makes_footstep_sound = true,
sounds = {
random = "mobs_sheep",
},
walk_velocity = 1,
run_velocity = 2,
runaway = true,
jump = true,
drops = {
{name = "mobs:meat_raw", chance = 1, min = 1, max = 2},
--{name = "wool:"..col[1], chance = 1, min = 1, max = 1},
},
water_damage = 1,
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,
},
follow = {"farming:wheat", "default:grass_5"},
view_range = 8,
replace_rate = 10,
replace_what = {"default:grass_3", "default:grass_4", "default:grass_5", "farming:wheat_8"},
replace_with = "air",
replace_offset = -1,
fear_height = 3,
--[[
on_replace = function(self, pos, oldnode, newnode)
print ("---- replaced") ; return false -- false to keep node, true to replace
end,
]]
on_rightclick = function(self, clicker)
--are we feeding?
if mobs:feed_tame(self, clicker, 8, true, true) then
--if full grow fuzz
if self.gotten == false then
self.object:set_properties({
textures = {"mobs_sheep_base.png^(mobs_sheep_wool.png^[colorize:" .. col[3] .. ")"},
mesh = "mobs_sheep.b3d",
})
end
return
end
local item = clicker:get_wielded_item()
local itemname = item:get_name()
--are we giving a haircut>
if itemname == "mobs:shears" then
if self.gotten ~= false
or self.child ~= false
or not minetest.get_modpath("wool") then
return
end
self.gotten = true -- shaved
local obj = minetest.add_item(
self.object:get_pos(),
ItemStack( "wool:" .. col[1] .. " " .. math.random(1, 3) )
)
if obj then
obj:setvelocity({
x = math.random(-1, 1),
y = 5,
z = math.random(-1, 1)
})
end
item:add_wear(650) -- 100 uses
clicker:set_wielded_item(item)
self.object:set_properties({
textures = {"mobs_sheep_shaved.png"},
mesh = "mobs_sheep_shaved.b3d",
})
return
end
local name = clicker:get_player_name()
--are we coloring?
if itemname:find("dye:") then
if self.gotten == false
and self.child == false
and self.tamed == true
and name == self.owner then
local colr = string.split(itemname, ":")[2]
for _,c in pairs(all_colours) do
if c[1] == colr then
local pos = self.object:get_pos()
self.object:remove()
local mob = minetest.add_entity(pos, "mobs_animal:sheep_" .. colr)
local ent = mob:get_luaentity()
ent.owner = name
ent.tamed = true
-- take item
if not mobs.is_creative(clicker:get_player_name()) then
item:take_item()
clicker:set_wielded_item(item)
end
break
end
end
end
return
end
-- protect mod with mobs:protector item
if mobs:protect(self, clicker) then return end
--are we capturing?
if mobs:capture_mob(self, clicker, 0, 5, 60, false, nil) then return end
end
})
mobs:register_egg("mobs_animal:sheep_"..col[1], S("@1 Sheep", col[2]), "wool_"..col[1]..".png", 1)
-- compatibility
mobs:alias_mob("mobs:sheep_" .. col[1], "mobs_animal:sheep_" .. col[1])
end
local spawn_on = "default:dirt_with_grass"
if minetest.get_modpath("ethereal") then
spawn_on = "ethereal:green_dirt"
end
mobs:spawn({
name = "mobs_animal:sheep_white",
nodes = {spawn_on},
min_light = 10,
chance = 15000,
min_height = 0,
max_height = 31000,
day_toggle = true,
})
mobs:alias_mob("mobs:sheep", "mobs_animal:sheep_white") -- compatibility

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 934 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 999 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 809 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 771 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 809 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 948 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 892 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 834 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 565 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 983 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,102 @@
local S = mobs.intllib
-- Warthog by KrupnoPavel
mobs:register_mob("mobs_animal:pumba", {
type = "animal",
passive = false,
attack_type = "dogfight",
group_attack = true,
owner_loyal = true,
reach = 2,
damage = 2,
hp_min = 5,
hp_max = 15,
armor = 200,
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4},
visual = "mesh",
mesh = "mobs_pumba.x",
textures = {
{"mobs_pumba.png"},
},
makes_footstep_sound = true,
sounds = {
random = "mobs_pig",
attack = "mobs_pig_angry",
},
walk_velocity = 2,
run_velocity = 3,
jump = true,
follow = {"default:apple", "farming:potato"},
view_range = 10,
drops = {
{name = "mobs:pork_raw", chance = 1, min = 1, max = 3},
{name = "maptools:silver_coin", chance = 10, min = 1, max = 1,},
},
water_damage = 1,
lava_damage = 5,
light_damage = 0,
fear_height = 2,
animation = {
speed_normal = 15,
stand_start = 25,
stand_end = 55,
walk_start = 70,
walk_end = 100,
punch_start = 70,
punch_end = 100,
},
on_rightclick = function(self, clicker)
if mobs:feed_tame(self, clicker, 8, true, true) then return end
if mobs:protect(self, clicker) then return end
if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then return end
end,
})
local spawn_on = {"default:dirt", "default:junglegrass", "default:dirt_with_dry_grass"}
if minetest.get_modpath("ethereal") then
spawn_on = {"ethereal:mushroom_dirt"}
end
mobs:spawn({
name = "mobs_animal:pumba",
nodes = spawn_on,
min_light = 10,
chance = 15000,
min_height = 0,
max_height = 31000,
day_toggle = true,
})
mobs:register_egg("mobs_animal:pumba", S("Warthog"), "wool_pink.png", 1)
mobs:alias_mob("mobs:pumba", "mobs_animal:pumba") -- compatibility
mobs:alias_mob("mobs:pig", "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),
})
-- cooked porkchop
minetest.register_craftitem(":mobs:pork_cooked", {
description = S("Cooked Porkchop"),
inventory_image = "mobs_pork_cooked.png",
on_use = minetest.item_eat(8),
})
minetest.register_craft({
type = "cooking",
output = "mobs:pork_cooked",
recipe = "mobs:pork_raw",
cooktime = 5,
})