1
0
mirror of https://codeberg.org/tenplus1/mobs_animal.git synced 2025-08-05 16:50:38 +02:00

Compare commits

36 Commits

Author SHA1 Message Date
39f4ffa2d9 Merge remote-tracking branch 'upstream/master' 2024-09-15 09:25:21 +02:00
4ada017824 Merge remote-tracking branch 'upstream/master' 2023-12-13 21:00:34 +01:00
1962f9f720 Merge remote-tracking branch 'upstream/master' 2023-11-22 23:53:18 +01:00
b9605e9fac Merge remote-tracking branch 'upstream/master' 2023-06-07 21:55:14 +02:00
5d5b984853 Merge remote-tracking branch 'upstream/master' 2022-08-26 15:17:32 +02:00
97b8bffd67 Merge remote-tracking branch 'upstream/master' 2022-06-25 16:50:54 +02:00
e7dc5350a6 Merge remote-tracking branch 'upstream/master' 2022-05-27 18:41:43 +02:00
e00766a6d7 Merge remote-tracking branch 'upstream/master' 2022-01-22 20:05:18 +01:00
d500e7f893 Merge remote-tracking branch 'upstream/master' 2021-11-26 21:43:46 +01:00
cac5e8328f Merge remote-tracking branch 'upstream/master' 2021-11-01 10:31:14 +01:00
bcb158d241 Fix crash on shift + right-click on a goat 2021-08-25 22:37:07 +02:00
99cf81611a Merge remote-tracking branch 'upstream/master' 2021-07-26 22:21:44 +02:00
a7b08928c5 Merge remote-tracking branch 'upstream/master' 2021-06-26 18:55:19 +02:00
630c73cdd7 Merge remote-tracking branch 'upstream/master' 2021-06-20 17:15:09 +02:00
eba1ac7f10 Merge remote-tracking branch 'upstream/master' 2021-04-17 13:51:50 +02:00
86987aadde Merge remote-tracking branch 'upstream/master' 2021-04-08 13:28:50 +02:00
5293673547 Merge remote-tracking branch 'upstream/master' 2021-04-04 21:01:44 +02:00
0873ef4119 Merge remote-tracking branch 'upstream/master' 2021-03-25 21:47:49 +01:00
498b3fbf10 Merge remote-tracking branch 'upstream/master' 2021-02-13 14:13:02 +01:00
01bdea97c7 Merge remote-tracking branch 'upstream/master' 2021-02-07 13:11:00 +01:00
620bdfe33d Merge remote-tracking branch 'upstream/master' 2021-01-23 12:55:30 +01:00
061cbb10b7 Merge remote-tracking branch 'upstream/master' 2021-01-19 23:36:36 +01:00
ba305db9ca Merge remote-tracking branch 'upstream/master' 2021-01-15 21:10:27 +01:00
e3ca168e7e Merge remote-tracking branch 'upstream/master' 2021-01-08 23:36:50 +01:00
66be327567 Merge remote-tracking branch 'upstream/master' 2020-12-08 22:38:39 +01:00
8ef65e2292 Merge remote-tracking branch 'upstream/master' 2020-09-21 18:02:56 +02:00
03acd94c3b Merge remote-tracking branch 'upstream/master' 2020-09-04 21:40:00 +02:00
a5ed775333 Merge remote-tracking branch 'upstream/master' 2020-08-30 12:52:14 +02:00
b98fc2186f Merge remote-tracking branch 'upstream/master' 2020-08-25 20:06:08 +02:00
a14d29bd55 Merge remote-tracking branch 'upstream/master' 2020-07-17 22:42:54 +02:00
0aa7224ebc Merge remote-tracking branch 'upstream/master' into nalc-1.2-dev 2020-06-20 15:38:41 +02:00
9776d5dfd4 Merge remote-tracking branch 'upstream/master' into nalc-1.2-dev 2020-02-29 18:07:18 +01:00
4a8cd67f6d Merge branch 'master' of yunohost.local:mtcontrib/mobs_animal into nalc-1.2-dev 2019-12-22 13:56:39 +01:00
ad864bd1c8 Merge branch 'master' into nalc-1.2 2019-05-10 00:53:43 +02:00
99794a8cdc Merge tag '20181016' into nalc 2018-12-31 16:15:02 +01:00
24bf26253c Ajout du mob goat (chèvre) et quelques drops en plus 2018-11-02 19:01:28 +01:00
27 changed files with 327 additions and 286 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 609 B

36
bee.lua
View File

@ -1,5 +1,5 @@
local S = core.get_translator("mobs_animal")
local S = minetest.get_translator("mobs_animal")
-- Bee by KrupnoPavel (.b3d model by sirrobzeroone)
@ -8,7 +8,7 @@ mobs:register_mob("mobs_animal:bee", {
passive = true,
hp_min = 1,
hp_max = 2,
armor = 100,
armor = 200,
collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.5, 0.2},
visual = "mesh",
mesh = "mobs_bee.b3d",
@ -68,10 +68,10 @@ mobs:alias_mob("mobs:bee", "mobs_animal:bee")
-- honey
core.register_craftitem(":mobs:honey", {
minetest.register_craftitem(":mobs:honey", {
description = S("Honey"),
inventory_image = "mobs_honey_inv.png",
on_use = core.item_eat(4),
on_use = minetest.item_eat(4),
groups = {food_honey = 1, food_sugar = 1}
})
@ -79,7 +79,7 @@ mobs.add_eatable("mobs:honey", 4)
-- beehive (1 in 4 chance of spawning bee when placed)
core.register_node(":mobs:beehive", {
minetest.register_node(":mobs:beehive", {
description = S("Beehive"),
drawtype = "plantlike",
tiles = {"mobs_beehive.png"},
@ -93,7 +93,7 @@ core.register_node(":mobs:beehive", {
on_construct = function(pos)
local meta = core.get_meta(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]"
@ -110,10 +110,10 @@ core.register_node(":mobs:beehive", {
if placer and placer:is_player() then
core.set_node(pos, {name = "mobs:beehive", param2 = 1})
minetest.set_node(pos, {name = "mobs:beehive", param2 = 1})
if math.random(4) == 1 then
core.add_entity(pos, "mobs_animal:bee")
minetest.add_entity(pos, "mobs_animal:bee")
end
end
end,
@ -121,7 +121,7 @@ core.register_node(":mobs:beehive", {
on_punch = function(pos, node, puncher)
-- yep, bee's don't like having their home punched by players
core.after(0.2, function()
minetest.after(0.2, function()
local hp = puncher and puncher:get_hp()
@ -138,7 +138,7 @@ core.register_node(":mobs:beehive", {
can_dig = function(pos,player) -- can only dig when no honey inside
local meta = core.get_meta(pos)
local meta = minetest.get_meta(pos)
return meta:get_inventory():is_empty("beehive")
end
@ -146,14 +146,14 @@ core.register_node(":mobs:beehive", {
-- beehive recipe
core.register_craft({
minetest.register_craft({
output = "mobs:beehive",
recipe = {{"mobs:bee","mobs:bee","mobs:bee"}}
})
-- honey block and craft recipes
core.register_node(":mobs:honey_block", {
minetest.register_node(":mobs:honey_block", {
description = S("Honey Block"),
tiles = {"mobs_honey_block.png"},
groups = {snappy = 3, flammable = 2},
@ -161,7 +161,7 @@ core.register_node(":mobs:honey_block", {
sounds = mobs.node_sound_dirt_defaults()
})
core.register_craft({
minetest.register_craft({
output = "mobs:honey_block",
recipe = {
{"mobs:honey", "mobs:honey", "mobs:honey"},
@ -170,7 +170,7 @@ core.register_craft({
}
})
core.register_craft({
minetest.register_craft({
output = "mobs:honey 9",
recipe = {
{"mobs:honey_block"}
@ -179,7 +179,7 @@ core.register_craft({
-- beehive workings
core.register_abm({
minetest.register_abm({
nodenames = {"mobs:beehive"},
interval = 12,
chance = 6,
@ -188,18 +188,18 @@ core.register_abm({
action = function(pos, node)
-- bee's only make honey during the day
local tod = (core.get_timeofday() or 0) * 24000
local tod = (minetest.get_timeofday() or 0) * 24000
if tod < 5500 or tod > 18500 then return end
local meta = core.get_meta(pos) ; if not meta then return end
local meta = minetest.get_meta(pos) ; if not meta then return end
local inv = meta:get_inventory()
local honey = inv:get_stack("beehive", 1):get_count()
if honey > 11 then return end -- return if hive full
-- no flowers no honey, nuff said!
if #core.find_nodes_in_area_under_air(
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

View File

@ -1,5 +1,5 @@
local S = core.get_translator("mobs_animal")
local S = minetest.get_translator("mobs_animal")
-- Bunny by ExeterDad
@ -10,7 +10,7 @@ mobs:register_mob("mobs_animal:bunny", {
stepheight = 0.6,
hp_min = 1,
hp_max = 4,
armor = 100,
armor = 200,
collisionbox = {-0.268, -0.5, -0.268, 0.268, 0.167, 0.268},
visual = "mesh",
mesh = "mobs_bunny.b3d",
@ -69,7 +69,7 @@ mobs:register_mob("mobs_animal:bunny", {
end
-- set special bunny attributes
local staticdata = core.serialize({
local staticdata = minetest.serialize({
type = "monster",
attack_type = "dogfight",
health = 20,
@ -84,7 +84,7 @@ mobs:register_mob("mobs_animal:bunny", {
})
-- add evil bunny
local obj = core.add_entity(
local obj = minetest.add_entity(
self.object:get_pos(), "mobs_animal:bunny", staticdata)
obj:set_properties({textures = {"mobs_bunny_evil.png"}, hp_max = 20})
@ -99,19 +99,19 @@ mobs:register_mob("mobs_animal:bunny", {
local pos = self.object:get_pos() ; pos.y = pos.y - 1
-- white snowy bunny
if core.find_node_near(pos, 1,
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 core.find_node_near(pos, 1,
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 core.find_node_near(pos, 1,
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})
@ -127,7 +127,7 @@ if not mobs.custom_spawn_animal then
local spawn_on = "default:dirt_with_grass"
if core.get_modpath("ethereal") then
if minetest.get_modpath("ethereal") then
spawn_on = "ethereal:prairie_dirt"
end
@ -154,10 +154,10 @@ mobs:alias_mob("mobs:bunny", "mobs_animal:bunny")
-- raw rabbit
core.register_craftitem(":mobs:rabbit_raw", {
minetest.register_craftitem(":mobs:rabbit_raw", {
description = S("Raw Rabbit"),
inventory_image = "mobs_rabbit_raw.png",
on_use = core.item_eat(3),
on_use = minetest.item_eat(3),
groups = {food_meat_raw = 1, food_rabbit_raw = 1}
})
@ -165,16 +165,16 @@ mobs.add_eatable("mobs:rabbit_raw", 3)
-- cooked rabbit
core.register_craftitem(":mobs:rabbit_cooked", {
minetest.register_craftitem(":mobs:rabbit_cooked", {
description = S("Cooked Rabbit"),
inventory_image = "mobs_rabbit_cooked.png",
on_use = core.item_eat(5),
on_use = minetest.item_eat(5),
groups = {food_meat = 1, food_rabbit = 1}
})
mobs.add_eatable("mobs:rabbit_cooked", 5)
core.register_craft({
minetest.register_craft({
type = "cooking",
output = "mobs:rabbit_cooked",
recipe = "mobs:rabbit_raw",
@ -183,15 +183,15 @@ core.register_craft({
-- rabbit hide and recipes
core.register_craftitem(":mobs:rabbit_hide", {
minetest.register_craftitem(":mobs:rabbit_hide", {
description = S("Rabbit Hide"),
inventory_image = "mobs_rabbit_hide.png",
groups = {flammable = 2, pelt = 1}
})
core.register_craft({type = "fuel", recipe = "mobs:rabbit_hide", burntime = 2})
minetest.register_craft({type = "fuel", recipe = "mobs:rabbit_hide", burntime = 2})
core.register_craft({
minetest.register_craft({
output = "mobs:leather",
recipe = {
{"mobs:rabbit_hide", "mobs:rabbit_hide"},

View File

@ -1,5 +1,5 @@
local S = core.get_translator("mobs_animal")
local S = minetest.get_translator("mobs_animal")
-- Chicken by JK Murray and Sirrobzeroone
@ -9,7 +9,7 @@ mobs:register_mob("mobs_animal:chicken", {
passive = true,
hp_min = 5,
hp_max = 10,
armor = 100,
armor = 200,
collisionbox = {-0.3, -0.75, -0.3, 0.3, 0.1, 0.3},
visual = "mesh",
mesh = "mobs_chicken.b3d",
@ -20,10 +20,7 @@ mobs:register_mob("mobs_animal:chicken", {
},
child_texture = {{"mobs_chick.png"}},
makes_footstep_sound = true,
sounds = {
random = "mobs_chicken",
replace = "default_dig_crumbly"
},
sounds = {random = "mobs_chicken"},
walk_velocity = 1,
run_velocity = 3,
runaway = true,
@ -84,13 +81,13 @@ mobs:register_mob("mobs_animal:chicken", {
if math.random(100) == 1 then
core.add_item(pos, "mobs:egg")
minetest.add_item(pos, "mobs:egg")
core.sound_play("default_place_node_hard",
minetest.sound_play("default_place_node_hard",
{pos = pos, gain = 1.0, max_hear_distance = 5}, true)
elseif math.random(100) < 3 then
core.add_item(pos, "mobs:chicken_feather")
minetest.add_item(pos, "mobs:chicken_feather")
end
end
})
@ -101,7 +98,7 @@ if not mobs.custom_spawn_animal then
local spawn_on = {"default:dirt_with_grass"}
if core.get_modpath("ethereal") then
if minetest.get_modpath("ethereal") then
spawn_on = {"ethereal:bamboo_dirt", "ethereal:prairie_dirt"}
end
@ -136,7 +133,7 @@ mobs:register_arrow("mobs_animal:egg_entity", {
hit_player = function(self, player)
player:punch(core.get_player_by_name(self.playername) or self.object, 1.0, {
player:punch(minetest.get_player_by_name(self.playername) or self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 1}
}, nil)
@ -156,10 +153,10 @@ mobs:register_arrow("mobs_animal:egg_entity", {
pos.y = pos.y + 1
local nod = core.get_node_or_nil(pos)
local nod = minetest.get_node_or_nil(pos)
if not nod or not core.registered_nodes[nod.name]
or core.registered_nodes[nod.name].walkable == true then
if not nod or not minetest.registered_nodes[nod.name]
or minetest.registered_nodes[nod.name].walkable == true then
return
end
@ -182,10 +179,10 @@ local mobs_shoot_egg = function (item, player, pointed_thing)
local playerpos = player:get_pos()
core.sound_play("default_place_node_hard",
minetest.sound_play("default_place_node_hard",
{pos = playerpos, gain = 1.0, max_hear_distance = 5}, true)
local obj = core.add_entity({
local obj = minetest.add_entity({
x = playerpos.x,
y = playerpos.y +1.5,
z = playerpos.z
@ -216,7 +213,7 @@ end
-- egg
core.register_node(":mobs:egg", {
minetest.register_node(":mobs:egg", {
description = S("Chicken Egg"),
tiles = {"mobs_chicken_egg.png"},
inventory_image = "mobs_chicken_egg.png",
@ -235,7 +232,7 @@ core.register_node(":mobs:egg", {
sounds = mobs.node_sound_defaults(),
after_place_node = function(pos, placer, itemstack)
core.set_node(pos, {name = "mobs:egg", param2 = 1})
minetest.set_node(pos, {name = "mobs:egg", param2 = 1})
end,
on_use = mobs_shoot_egg
@ -243,16 +240,16 @@ core.register_node(":mobs:egg", {
-- fried egg and recipe
core.register_craftitem(":mobs:chicken_egg_fried", {
minetest.register_craftitem(":mobs:chicken_egg_fried", {
description = S("Fried Egg"),
inventory_image = "mobs_chicken_egg_fried.png",
on_use = core.item_eat(2),
on_use = minetest.item_eat(2),
groups = {food_egg_fried = 1}
})
mobs.add_eatable("mobs:chicken_egg_fried", 2)
core.register_craft({
minetest.register_craft({
type = "cooking",
recipe = "mobs:egg",
output = "mobs:chicken_egg_fried"
@ -260,10 +257,10 @@ core.register_craft({
-- raw chicken
core.register_craftitem(":mobs:chicken_raw", {
minetest.register_craftitem(":mobs:chicken_raw", {
description = S("Raw Chicken"),
inventory_image = "mobs_chicken_raw.png",
on_use = core.item_eat(2),
on_use = minetest.item_eat(2),
groups = {food_meat_raw = 1, food_chicken_raw = 1}
})
@ -271,16 +268,16 @@ mobs.add_eatable("mobs:chicken_raw", 2)
-- cooked chicken and recipe
core.register_craftitem(":mobs:chicken_cooked", {
minetest.register_craftitem(":mobs:chicken_cooked", {
description = S("Cooked Chicken"),
inventory_image = "mobs_chicken_cooked.png",
on_use = core.item_eat(6),
on_use = minetest.item_eat(6),
groups = {food_meat = 1, food_chicken = 1}
})
mobs.add_eatable("mobs:chicken_cooked", 6)
core.register_craft({
minetest.register_craft({
type = "cooking",
recipe = "mobs:chicken_raw",
output = "mobs:chicken_cooked"
@ -288,10 +285,10 @@ core.register_craft({
-- feather and fuel
core.register_craftitem(":mobs:chicken_feather", {
minetest.register_craftitem(":mobs:chicken_feather", {
description = S("Feather"),
inventory_image = "mobs_chicken_feather.png",
groups = {flammable = 2, feather = 1}
})
core.register_craft({type = "fuel", recipe = "mobs:chicken_feather", burntime = 1})
minetest.register_craft({type = "fuel", recipe = "mobs:chicken_feather", burntime = 1})

124
cow.lua
View File

@ -1,14 +1,5 @@
local S = core.get_translator("mobs_animal")
-- should cows eat grass blocks and mess up the environment?
local eat_gb = core.settings:get_bool("mobs_animal.eat_grass_block")
local replace_what = { {"group:grass", "air", 0} }
if eat_gb then
table.insert(replace_what, {"default:dirt_with_grass", "default:dirt", -1})
end
local S = minetest.get_translator("mobs_animal")
-- Cow by sirrobzeroone
@ -18,10 +9,10 @@ mobs:register_mob("mobs_animal:cow", {
attack_type = "dogfight",
attack_npcs = false,
reach = 2,
damage = 4, attack_chance = 98,
hp_min = 10,
damage = 4,
hp_min = 5,
hp_max = 20,
armor = 100,
armor = 200,
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.2, 0.4},
visual = "mesh",
mesh = "mobs_cow.b3d",
@ -30,10 +21,7 @@ mobs:register_mob("mobs_animal:cow", {
{"mobs_cow2.png"}
},
makes_footstep_sound = true,
sounds = {
random = "mobs_cow",
replace = "default_dig_crumbly"
},
sounds = {random = "mobs_cow"},
walk_velocity = 1,
run_velocity = 2,
jump = true,
@ -41,7 +29,8 @@ mobs:register_mob("mobs_animal:cow", {
pushable = true,
drops = {
{name = "mobs:meat_raw", chance = 1, min = 1, max = 3},
{name = "mobs:leather", chance = 1, min = 0, max = 2}
{name = "mobs:leather", chance = 1, min = 0, max = 2},
{name = "maptools:silver_coin", chance = 10, min = 0, max = 1,},
},
water_damage = 0.01,
lava_damage = 5,
@ -52,7 +41,7 @@ mobs:register_mob("mobs_animal:cow", {
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 = 25, die_loop = false
die_start = 165, die_end = 185, die_speed = 10, die_loop = false
},
follow = {
"farming:wheat", "default:grass_1", "farming:barley",
@ -60,20 +49,10 @@ mobs:register_mob("mobs_animal:cow", {
},
view_range = 8,
replace_rate = 10,
replace_what = replace_what,
--[[
pick_up = {"default:grass_1", "default:dry_grass_1"},
on_pick_up = function(self, entity)
local istack = ItemStack(entity.itemstring)
print("-- took", istack:get_name())
istack:take_item(1)
return istack
end,
]]
replace_what = {
{"group:grass", "mobs:dung", 0},
{"default:dirt_with_grass", "default:dirt", -1}
},
-- stay_near = {{"farming:straw", "group:grass"}, 10},
fear_height = 2,
@ -104,7 +83,7 @@ mobs:register_mob("mobs_animal:cow", {
if self.gotten == true then
core.chat_send_player(name, S("Cow already milked!"))
minetest.chat_send_player(name, S("Cow already milked!"))
return
end
@ -129,7 +108,7 @@ mobs:register_mob("mobs_animal:cow", {
pos.y = pos.y + 0.5
core.add_item(pos, {name = ret_item})
minetest.add_item(pos, {name = ret_item})
end
self.gotten = true -- milked
@ -176,27 +155,27 @@ mobs:alias_mob("mobs:cow", "mobs_animal:cow")
-- bucket of milk
core.register_craftitem(":mobs:bucket_milk", {
minetest.register_craftitem(":mobs:bucket_milk", {
description = S("Bucket of Milk"),
inventory_image = "mobs_bucket_milk.png",
stack_max = 1,
on_use = core.item_eat(8, "bucket:bucket_empty"),
on_use = minetest.item_eat(8, "bucket:bucket_empty"),
groups = {food_milk = 1, drink = 1}
})
mobs.add_eatable("mobs:bucket_milk", 8)
-- glass of milk and recipes
core.register_craftitem(":mobs:glass_milk", {
minetest.register_craftitem(":mobs:glass_milk", {
description = S("Glass of Milk"),
inventory_image = "mobs_glass_milk.png",
on_use = core.item_eat(2, "vessels:drinking_glass"),
on_use = minetest.item_eat(2, "vessels:drinking_glass"),
groups = {food_milk_glass = 1, vessel = 1, drink = 1}
})
mobs.add_eatable("mobs:glass_milk", 2)
core.register_craft({
minetest.register_craft({
output = "mobs:glass_milk 4",
recipe = {
{"vessels:drinking_glass", "vessels:drinking_glass"},
@ -206,7 +185,7 @@ core.register_craft({
replacements = {{"mobs:bucket_milk", "bucket:bucket_empty"}}
})
core.register_craft({
minetest.register_craft({
output = "mobs:bucket_milk",
recipe = {
{"group:food_milk_glass", "group:food_milk_glass"},
@ -220,10 +199,10 @@ core.register_craft({
-- butter and recipe
core.register_craftitem(":mobs:butter", {
minetest.register_craftitem(":mobs:butter", {
description = S("Butter"),
inventory_image = "mobs_butter.png",
on_use = core.item_eat(1),
on_use = minetest.item_eat(1),
groups = {food_butter = 1}
})
@ -231,11 +210,11 @@ mobs.add_eatable("mobs:butter", 1)
local salt_item = "default:sapling" -- some saplings are high in sodium
if core.get_modpath("farming") and farming and farming.mod then
if minetest.get_modpath("farming") and farming and farming.mod then
salt_item = "farming:salt"
end
core.register_craft({
minetest.register_craft({
output = "mobs:butter",
recipe = {{"mobs:bucket_milk", salt_item}},
replacements = {{"mobs:bucket_milk", "bucket:bucket_empty"}}
@ -243,16 +222,16 @@ core.register_craft({
-- cheese wedge and recipe
core.register_craftitem(":mobs:cheese", {
minetest.register_craftitem(":mobs:cheese", {
description = S("Cheese"),
inventory_image = "mobs_cheese.png",
on_use = core.item_eat(4),
on_use = minetest.item_eat(4),
groups = {food_cheese = 1}
})
mobs.add_eatable("mobs:cheese", 4)
core.register_craft({
minetest.register_craft({
type = "cooking",
output = "mobs:cheese",
recipe = "mobs:bucket_milk",
@ -262,7 +241,7 @@ core.register_craft({
-- cheese block and recipe
core.register_node(":mobs:cheeseblock", {
minetest.register_node(":mobs:cheeseblock", {
description = S("Cheese Block"),
tiles = {"mobs_cheeseblock.png"},
is_ground_content = false,
@ -270,7 +249,7 @@ core.register_node(":mobs:cheeseblock", {
sounds = mobs.node_sound_dirt_defaults()
})
core.register_craft({
minetest.register_craft({
output = "mobs:cheeseblock",
recipe = {
{"group:food_cheese", "group:food_cheese", "group:food_cheese"},
@ -279,30 +258,59 @@ core.register_craft({
}
})
core.register_craft({
minetest.register_craft({
output = "mobs:cheese 9",
recipe = {{"mobs:cheeseblock"}}
})
-- NALC: 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",
})
-- check for either of the wood bucket mods and add compatibility
local wb = core.get_modpath("wooden_bucket")
local bw = core.get_modpath("bucket_wooden")
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"
core.register_craftitem(":mobs:wooden_bucket_milk", {
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 = core.item_eat(8, return_item),
on_use = minetest.item_eat(8, return_item),
groups = {food_milk = 1, flammable = 3, drink = 1}
})
core.register_craft({
minetest.register_craft({
output = "mobs:glass_milk 4",
recipe = {
{"vessels:drinking_glass", "vessels:drinking_glass"},
@ -312,7 +320,7 @@ if wb or bw then
replacements = {{"mobs:wooden_bucket_milk", return_item}}
})
core.register_craft({
minetest.register_craft({
output = "mobs:wooden_bucket_milk",
recipe = {
{"group:food_milk_glass", "group:food_milk_glass"},
@ -324,7 +332,7 @@ if wb or bw then
}
})
core.register_craft({
minetest.register_craft({
output = "mobs:butter",
recipe = {{"mobs:wooden_bucket_milk", salt_item}},
replacements = {{"mobs:wooden_bucket_milk", return_item}}

107
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")

View File

@ -1,8 +1,8 @@
-- translation and mod path
local S = core.get_translator("mobs_animal")
local path = core.get_modpath(core.get_current_modname()) .. "/"
local S = minetest.get_translator("mobs_animal")
local path = minetest.get_modpath(minetest.get_current_modname()) .. "/"
-- Check for custom mob spawn file
@ -18,7 +18,7 @@ end
local function ddoo(mob)
if core.settings:get_bool("mobs_animal." .. mob) == false then
if minetest.settings:get_bool("mobs_animal." .. mob) == false then
print("[Mobs_Animal] " .. mob .. " disabled!")
return
end
@ -38,6 +38,7 @@ ddoo("bunny") -- ExeterDad
ddoo("kitten") -- Jordach/BFD
ddoo("penguin") -- D00Med
ddoo("panda") -- AspireMint
dofile(path .. "goat.lua") -- NALC(sys4 fork MFF)
-- Load custom spawning if found
@ -47,7 +48,7 @@ end
-- Lucky Blocks
if core.get_modpath("lucky_block") then
if minetest.get_modpath("lucky_block") then
dofile(path .. "lucky_block.lua")
end

View File

@ -1,8 +1,8 @@
-- translation and hairball setting
local S = core.get_translator("mobs_animal")
local hairball = core.settings:get_bool("mobs_animal.hairball") ~= false
local S = minetest.get_translator("mobs_animal")
local hairball = minetest.settings:get_bool("mobs_animal.hairball") ~= false
-- custom kitty types
@ -28,7 +28,7 @@ mobs:register_mob("mobs_animal:kitten", {
passive = false,
hp_min = 5,
hp_max = 10,
armor = 100,
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},
@ -59,8 +59,9 @@ mobs:register_mob("mobs_animal:kitten", {
stoodup_start = 0, stoodup_end = 0,
},
follow = {
"mobs_animal:rat", "group:food_fish_raw", "mobs:glass_milk",
"mobs_fish:tropical", "mobs_fish:clownfish", "xocean:fish_edible"
"mobs_animal:rat", "group:food_fish_raw",
"mobs_fish:tropical", "mobs_fish:clownfish", "xocean:fish_edible",
"group:fishraw" -- NALC: Group from fishing mod
},
view_range = 8,
@ -74,7 +75,7 @@ mobs:register_mob("mobs_animal:kitten", {
tmp = kitten_types[n]
if core.find_node_near(pos, 1, tmp.nodes) then
if minetest.find_node_near(pos, 1, tmp.nodes) then
self.base_texture = tmp.skins
self.object:set_properties({textures = tmp.skins})
@ -88,24 +89,7 @@ mobs:register_mob("mobs_animal:kitten", {
on_rightclick = function(self, clicker)
-- what are we holding?
local tool = clicker:get_wielded_item()
local item = tool and tool:get_name()
if mobs:feed_tame(self, clicker, 4, true, true) then
-- return empty glass if kitten drinks a glass of milk
if item == "mobs:glass_milk" and core.get_modpath("vessels")
and not mobs.is_creative(clicker:get_player_name()) then
local pos = self.object:get_pos()
core.add_item(pos, "vessels:drinking_glass")
end
return
end
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
@ -136,9 +120,9 @@ mobs:register_mob("mobs_animal:kitten", {
local pos = self.object:get_pos()
core.add_item(pos, "mobs:hairball")
minetest.add_item(pos, "mobs:hairball")
core.sound_play("default_dig_snappy", {
minetest.sound_play("default_dig_snappy", {
pos = pos, gain = 1.0, max_hear_distance = 5}, true)
end
})
@ -149,7 +133,7 @@ if not mobs.custom_spawn_animal then
local spawn_on = "default:dirt_with_grass"
if core.get_modpath("ethereal") then
if minetest.get_modpath("ethereal") then
spawn_on = "ethereal:grove_dirt"
end
@ -187,7 +171,7 @@ local hairball_items = {
"ethereal:fish_tetra"
}
core.register_craftitem(":mobs:hairball", {
minetest.register_craftitem(":mobs:hairball", {
description = S("Hairball"),
inventory_image = "mobs_hairball.png",
@ -198,11 +182,11 @@ core.register_craftitem(":mobs:hairball", {
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 core.registered_items[item] then
core.add_item(newpos, {name = item})
if item ~= "" and minetest.registered_items[item] then
minetest.add_item(newpos, {name = item})
end
core.sound_play("default_place_node_hard", {
minetest.sound_play("default_place_node_hard", {
pos = newpos, gain = 1.0, max_hear_distance = 5}, true)
itemstack:take_item()

View File

@ -1,49 +1,50 @@
# textdomain:mobs_animal
@1 Sheep=@1 Овца
@1 Sheep=@1 овца
Bee=Пчела
Beehive=Пчелиный Улей
Beehive=Улей
Black=Черная
Blue=Синяя
Brown=Коричневая
Bucket of Milk=Ведро Молока
Bucket of Milk=Ведро молока
Bunny=Кролик
Butter=Масло
Cheese=Сыр
Cheese Block=Блок Сыра
Cheese Block=Блок сыра
Chicken=Курица
Chicken Egg=Куриное Яйцо
Cooked Chicken=Приготовленная Курятина
Cooked Mutton=Приготовленная Баранина
Cooked Porkchop=Приготовленные Отбивные
Cooked Rabbit=Приготовленная Крольчатина
Cooked Rat=Приготовленная Крыса
Chicken Egg=Куриное яйцо
Cooked Chicken=Приготовленная курятина
Cooked Mutton=Приготовленная баранина
Cooked Porkchop=Приготовленные свиные отбивные
Cooked Rabbit=Приготовленная крольчатина
Cooked Rat=Приготовленная крыса
Cow=Корова
Cow already milked!=Корова уже подоена!
Cow already milked!=Корову уже подоили!
Cyan=Голубая
Dark Green=Темно-зеленая
Dark Grey=Темно-серая
Feather=Перо
Fried Egg=Яичница
Glass of Milk=Стакан Молока
Glass of Milk=Стакан молока
Green=Зеленая
Grey=Серая
Hairball=Комочек шерсти
Honey=Мёд
Honey Block=Блок Мёда
Honey Block=Блок мёда
Kitten=Котенок
Magenta=Пурпурная
Orange=Оранжевая
Panda=Панда
Penguin=Пингвин
Pink=Розовая
Rabbit Hide=Кроличья Шкурка
Rabbit Hide=Кроличья шкурка
Rat=Крыса
Raw Chicken=Сырая Курятина
Raw Mutton=Сырая Баранина
Raw Porkchop=Свиные Отбивные
Raw Rabbit=Сырая Крольчатина
Raw Chicken=Сырая курятина
Raw Mutton=Сырая баранина
Raw Porkchop=Свиные отбивные
Raw Rabbit=Сырая крольчатина
Red=Красная
Violet=Фиолетовая
Warthog=Бородавочник
White=Белая
Yellow=Желтая
Yellow=Желтая
#[MOD] Mobs Redo Animals loaded=

View File

@ -1,52 +0,0 @@
# textdomain:mobs_animal
Mobs Animal=Моби Тварини
Add farm animals and a few extra into your world.=Додає свійських тварин і трохи додаткового контенту у світ.
Adds farm animals.=Додає свійських тварин.
@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=Жовта

View File

@ -25,7 +25,7 @@ lucky_block:add_blocks({
-- if nyancat found add special block
if core.registered_nodes["default:nyancat"] then
if minetest.registered_nodes["default:nyancat"] then
lucky_block:add_blocks({
{"tro", "default:nyancat", "mobs_kitten", true}

BIN
models/mobs_goat.b3d Normal file

Binary file not shown.

View File

@ -1,5 +1,5 @@
local S = core.get_translator("mobs_animal")
local S = minetest.get_translator("mobs_animal")
-- Panda by AspireMint (CC BY-SA 3.0)
@ -15,7 +15,7 @@ mobs:register_mob("mobs_animal:panda", {
damage = 3,
hp_min = 10,
hp_max = 24,
armor = 100,
armor = 200,
collisionbox = {-0.4, -0.45, -0.4, 0.4, 0.45, 0.4},
visual = "mesh",
mesh = "mobs_panda.b3d",
@ -60,7 +60,7 @@ mobs:register_mob("mobs_animal:panda", {
-- where to spawn (ethereal bamboo biome only)
if core.get_modpath("ethereal") and not mobs.custom_spawn_animal then
if minetest.get_modpath("ethereal") and not mobs.custom_spawn_animal then
mobs:spawn({
name = "mobs_animal:panda",

View File

@ -1,5 +1,5 @@
local S = core.get_translator("mobs_animal")
local S = minetest.get_translator("mobs_animal")
-- Penguin by D00Med
@ -10,7 +10,7 @@ stepheight = 0.6,
reach = 1,
hp_min = 5,
hp_max = 10,
armor = 100,
armor = 200,
collisionbox = {-0.2, -0.0, -0.2, 0.2, 0.5, 0.2},
visual = "mesh",
mesh = "mobs_penguin.b3d",
@ -41,7 +41,8 @@ stepheight = 0.6,
floats = 0,
follow = {
"group:food_fish_raw", "mobs_fish:clownfish", "mobs_fish:tropical",
"mobs_fish:clownfish_set", "mobs_fish:tropical_set", "xocean:fish_edible"
"mobs_fish:clownfish_set", "mobs_fish:tropical_set", "xocean:fish_edible",
"group:fishraw" -- Edit from NALC: Group from fishing mod
},
view_range = 5,

13
rat.lua
View File

@ -1,5 +1,5 @@
local S = core.get_translator("mobs_animal")
local S = minetest.get_translator("mobs_animal")
-- Rat by KPavel and PilzAdam (B3D model by sirrobzeroone)
@ -9,14 +9,13 @@ mobs:register_mob("mobs_animal:rat", {
passive = true,
hp_min = 1,
hp_max = 4,
armor = 100,
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"},
{"mobs_rat3.png"}
{"mobs_rat2.png"}
},
makes_footstep_sound = false,
sounds = {random = "mobs_rat"},
@ -93,16 +92,16 @@ mobs:alias_mob("mobs:rat", "mobs_animal:rat")
-- cooked rat, yummy!
core.register_craftitem(":mobs:rat_cooked", {
minetest.register_craftitem(":mobs:rat_cooked", {
description = S("Cooked Rat"),
inventory_image = "mobs_cooked_rat.png",
on_use = core.item_eat(3),
on_use = minetest.item_eat(3),
groups = {food_rat = 1}
})
mobs.add_eatable("mobs:rat_cooked", 3)
core.register_craft({
minetest.register_craft({
type = "cooking",
output = "mobs:rat_cooked",
recipe = "mobs_animal:rat",

View File

@ -9,5 +9,3 @@ mobs_animal.rat (Enable Rat) bool true
mobs_animal.sheep (Enable Sheep) bool true
mobs_animal.warthog (Enable Warthog) bool true
mobs_animal.hairball (Enable Kitten Hairball drops) bool true
mobs_animal.eat_grass_block (Enable Cow/Sheep eating grass blocks) bool false

View File

@ -1,18 +1,9 @@
-- translation and localize function
local S = core.get_translator("mobs_animal")
local S = minetest.get_translator("mobs_animal")
local random = math.random
-- should sheep eat grass blocks and mess up the environment?
local eat_gb = core.settings:get_bool("mobs_animal.eat_grass_block")
local replace_what = { {"group:grass", "air", -1} }
if eat_gb then
table.insert(replace_what, {"default:dirt_with_grass", "default:dirt", -2})
end
-- sheep colour table
local all_colours = {
@ -53,7 +44,10 @@ for _, col in ipairs(all_colours) do
for _2, col2 in ipairs(all_colours) do
if col2[1] == colr then colr = col2[3] ; break end
if col2[1] == colr then
colr = col2[3]
break
end
end
end
@ -65,7 +59,8 @@ for _, col in ipairs(all_colours) do
local col_text = "^[multiply:" .. col_override
if gotten then
wool_shave_text = shav_text ; col_text = ""
wool_shave_text = shav_text
col_text = ""
end
-- results in unneccesary brackets for shaved but these are ignored by engine
@ -85,8 +80,8 @@ for _, col in ipairs(all_colours) do
type = "animal",
passive = true,
hp_min = 8,
hp_max = 12,
armor = 100,
hp_max = 10,
armor = 200,
collisionbox = {-0.5, -1, -0.5, 0.5, 0.3, 0.5},
visual = "mesh",
mesh = "mobs_sheep.b3d",
@ -95,10 +90,7 @@ for _, col in ipairs(all_colours) do
},
gotten_texture = {"mobs_sheep_base.png^mobs_sheep_shaved.png"},
makes_footstep_sound = true,
sounds = {
random = "mobs_sheep",
replace = "default_dig_crumbly"
},
sounds = {random = "mobs_sheep"},
walk_velocity = 1,
run_velocity = 2,
runaway = true,
@ -124,7 +116,10 @@ for _, col in ipairs(all_colours) do
},
view_range = 8,
replace_rate = 10,
replace_what = replace_what,
replace_what = {
{"group:grass", "air", -1},
{"default:dirt_with_grass", "default:dirt", -2}
},
fear_height = 3,
on_replace = function(self, pos, oldnode, newnode)
@ -169,7 +164,7 @@ for _, col in ipairs(all_colours) do
----------------------------------------------------
pos.y = pos.y + 0.5 -- spawn child a little higher
local mob = core.add_entity(pos, parent1.name)
local mob = minetest.add_entity(pos, parent1.name)
local ent2 = mob:get_luaentity()
-- remove horns from parents' texture string, lambs dont have horns
@ -275,21 +270,22 @@ for _, col in ipairs(all_colours) do
if itemname == "mobs:shears" then
if self.gotten ~= false or self.child ~= false
or name ~= self.owner or not core.get_modpath("wool") then
or name ~= self.owner or not minetest.get_modpath("wool") then
return
end
self.gotten = true -- shaved
self.drops = drops_gotten
self.food = 0 -- reset food
local obj = core.add_item(
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)})
obj:set_velocity({
x = random(-1, 1), y = 5, z = random(-1, 1)})
end
item:add_wear(650) -- 100 uses
@ -320,7 +316,7 @@ for _, col in ipairs(all_colours) do
local pos = self.object:get_pos()
-- add new coloured sheep
local mob = core.add_entity(pos, "mobs_animal:sheep_" .. colr)
local mob = minetest.add_entity(pos, "mobs_animal:sheep_" .. colr)
local ent = mob:get_luaentity()
if ent then
@ -385,7 +381,7 @@ if not mobs.custom_spawn_animal then
local max_ht = 400
local spawn_on = {"default:dirt_with_grass", "ethereal:green_dirt"}
local mod_ethereal = core.get_modpath("ethereal")
local mod_ethereal = minetest.get_modpath("ethereal")
local spawn_chance = mod_ethereal and 12000 or 8000
mobs:spawn({
@ -471,7 +467,7 @@ if not mobs.custom_spawn_animal then
random_sheep(pos, true)
-- Rest of herd
local nods = core.find_nodes_in_area_under_air(
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)
@ -486,7 +482,7 @@ if not mobs.custom_spawn_animal then
pos2.y = pos2.y + 2
if core.get_node(pos2).name == "air" then
if minetest.get_node(pos2).name == "air" then
-- Add a sheep or lamb
random_sheep(pos2, false)
@ -503,10 +499,10 @@ mobs:alias_mob("mobs:sheep", "mobs_animal:sheep_white")
-- raw mutton
core.register_craftitem(":mobs:mutton_raw", {
minetest.register_craftitem(":mobs:mutton_raw", {
description = S("Raw Mutton"),
inventory_image = "mobs_mutton_raw.png",
on_use = core.item_eat(2),
on_use = minetest.item_eat(2),
groups = {food_meat_raw = 1, food_mutton_raw = 1}
})
@ -514,16 +510,16 @@ mobs.add_eatable("mobs:mutton_raw", 2)
-- cooked mutton and recipe
core.register_craftitem(":mobs:mutton_cooked", {
minetest.register_craftitem(":mobs:mutton_cooked", {
description = S("Cooked Mutton"),
inventory_image = "mobs_mutton_cooked.png",
on_use = core.item_eat(6),
on_use = minetest.item_eat(6),
groups = {food_meat = 1, food_mutton = 1}
})
mobs.add_eatable("mobs:mutton_cooked", 6)
core.register_craft({
minetest.register_craft({
type = "cooking",
output = "mobs:mutton_cooked",
recipe = "mobs:mutton_raw",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 B

After

Width:  |  Height:  |  Size: 609 B

BIN
textures/mobs_dung.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

BIN
textures/mobs_goat_brown.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
textures/mobs_goat_grey.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
textures/mobs_goat_inv.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
textures/mobs_goat_white.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 675 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 788 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 827 B

View File

@ -1,5 +1,5 @@
local S = core.get_translator("mobs_animal")
local S = minetest.get_translator("mobs_animal")
-- Warthog originally by KrupnoPavel, B3D model by sirrobzeroone
@ -12,10 +12,10 @@ mobs:register_mob("mobs_animal:pumba", {
owner_loyal = true,
attack_npcs = false,
reach = 2,
damage = 2, attack_chance = 95,
hp_min = 10,
damage = 2,
hp_min = 5,
hp_max = 15,
armor = 100,
armor = 200,
collisionbox = {-0.4, -0.01, -0.4, 0.4, 0.95, 0.4},
visual = "mesh",
mesh = "mobs_pumba.b3d",
@ -33,7 +33,8 @@ mobs:register_mob("mobs_animal:pumba", {
follow = {"default:apple", "farming:potato"},
view_range = 10,
drops = {
{name = "mobs:pork_raw", chance = 1, min = 1, max = 3}
{name = "mobs:pork_raw", chance = 1, min = 1, max = 3},
{name = "maptools:silver_coin", chance = 10, min = 0, max = 1}
},
water_damage = 0.01,
lava_damage = 5,
@ -64,7 +65,7 @@ if not mobs.custom_spawn_animal then
local spawn_on = {"default:dirt_with_grass", "default:dry_dirt_with_dry_grass"}
local spawn_by = {"group:grass"}
if core.get_modpath("ethereal") then
if minetest.get_modpath("ethereal") then
spawn_on = {"ethereal:mushroom_dirt"}
spawn_by = {"flowers:mushroom_brown", "flowers:mushroom_red"}
end
@ -92,10 +93,10 @@ mobs:alias_mob("mobs:pumba", "mobs_animal:pumba")
-- raw porkchop
core.register_craftitem(":mobs:pork_raw", {
minetest.register_craftitem(":mobs:pork_raw", {
description = S("Raw Porkchop"),
inventory_image = "mobs_pork_raw.png",
on_use = core.item_eat(4),
on_use = minetest.item_eat(4),
groups = {food_meat_raw = 1, food_pork_raw = 1}
})
@ -103,16 +104,16 @@ mobs.add_eatable("mobs:pork_raw", 4)
-- cooked porkchop and recipe
core.register_craftitem(":mobs:pork_cooked", {
minetest.register_craftitem(":mobs:pork_cooked", {
description = S("Cooked Porkchop"),
inventory_image = "mobs_pork_cooked.png",
on_use = core.item_eat(8),
on_use = minetest.item_eat(8),
groups = {food_meat = 1, food_pork = 1}
})
mobs.add_eatable("mobs:pork_cooked", 8)
core.register_craft({
minetest.register_craft({
type = "cooking",
output = "mobs:pork_cooked",
recipe = "mobs:pork_raw",