mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-08-24 02:47:24 +02:00
648 lines
20 KiB
Lua
648 lines
20 KiB
Lua
--MCmobs v0.5
|
|
--maikerumine
|
|
--made for MC like Survival game
|
|
--License for code WTFPL and otherwise stated in readmes
|
|
|
|
|
|
--dofile(minetest.get_modpath("mobs").."/api.lua")
|
|
--THIS IS THE MASTER ITEM LIST TO USE WITH DEFAULT
|
|
|
|
-- intllib
|
|
local MP = minetest.get_modpath(minetest.get_current_modname())
|
|
local S, NS = dofile(MP.."/intllib.lua")
|
|
|
|
local c = mobs_mc.is_item_variable_overridden
|
|
|
|
-- Blaze
|
|
if c("blaze_rod") then
|
|
minetest.register_craftitem("mobs_mc:blaze_rod", {
|
|
description = S("Blaze Rod"),
|
|
_doc_items_longdesc = S("This is a crafting component dropped from dead blazes."),
|
|
wield_image = "mcl_mobitems_blaze_rod.png",
|
|
inventory_image = "mcl_mobitems_blaze_rod.png",
|
|
})
|
|
|
|
-- Make blaze rod furnace-burnable. 1.5 times the burn time of a coal lump
|
|
local coalcraft, burntime
|
|
if minetest.get_modpath("default") then
|
|
coalcraft = minetest.get_craft_result({method="fuel", width=1, items={"default:coal_lump"}})
|
|
end
|
|
if coalcraft then
|
|
burntime = math.floor(coalcraft.time * 1.5)
|
|
end
|
|
if burntime == nil or burntime == 0 then
|
|
burntime = 60
|
|
end
|
|
|
|
minetest.register_craft({
|
|
type = "fuel",
|
|
burntime = burntime,
|
|
recipe = "mobs_mc:blaze_rod",
|
|
})
|
|
end
|
|
|
|
if c("blaze_powder") then
|
|
minetest.register_craftitem("mobs_mc:blaze_powder", {
|
|
description = S("Blaze Powder"),
|
|
_doc_items_longdesc = S("This item is mainly used for brewing potions and crafting."),
|
|
wield_image = "mcl_mobitems_blaze_powder.png",
|
|
inventory_image = "mcl_mobitems_blaze_powder.png",
|
|
})
|
|
end
|
|
|
|
if c("blaze_rod") and c("blaze_powder") then
|
|
minetest.register_craft({
|
|
output = "mobs_mc:blaze_powder 2",
|
|
recipe = {{ "mobs_mc:blaze_rod" }},
|
|
})
|
|
end
|
|
|
|
-- Chicken
|
|
if c("chicken_raw") then
|
|
minetest.register_craftitem("mobs_mc:chicken_raw", {
|
|
description = S("Raw Chicken"),
|
|
_doc_items_longdesc = S("Raw chicken is a food item and can be eaten safely. Cooking it will increase its nutritional value."),
|
|
inventory_image = "mcl_mobitems_chicken_raw.png",
|
|
groups = { food = 2, eatable = 2 },
|
|
on_use = minetest.item_eat(2),
|
|
})
|
|
end
|
|
|
|
if c("chicken_cooked") then
|
|
minetest.register_craftitem("mobs_mc:chicken_cooked", {
|
|
description = S("Cooked Chicken"),
|
|
_doc_items_longdesc = S("A cooked chicken is a healthy food item which can be eaten."),
|
|
inventory_image = "mcl_mobitems_chicken_cooked.png",
|
|
groups = { food = 2, eatable = 6 },
|
|
on_use = minetest.item_eat(6),
|
|
})
|
|
end
|
|
|
|
if c("chicken_raw") and c("chicken_cooked") then
|
|
minetest.register_craft({
|
|
type = "cooking",
|
|
output = "mobs_mc:chicken_cooked",
|
|
recipe = "mobs_mc:chicken_raw",
|
|
cooktime = 5,
|
|
})
|
|
end
|
|
|
|
if c("feather") then
|
|
minetest.register_craftitem("mobs_mc:feather", {
|
|
description = S("Feather"),
|
|
_doc_items_longdesc = S("Feathers are used in crafting and are dropped from chickens."),
|
|
inventory_image = "mcl_mobitems_feather.png",
|
|
})
|
|
end
|
|
|
|
-- Cow and mooshroom
|
|
if c("beef_raw") then
|
|
minetest.register_craftitem("mobs_mc:beef_raw", {
|
|
description = S("Raw Beef"),
|
|
_doc_items_longdesc = S("Raw beef is the flesh from cows and can be eaten safely. Cooking it will greatly increase its nutritional value."),
|
|
inventory_image = "mcl_mobitems_beef_raw.png",
|
|
groups = { food = 2, eatable = 3 },
|
|
on_use = minetest.item_eat(3),
|
|
})
|
|
end
|
|
|
|
if c("beef_cooked") then
|
|
minetest.register_craftitem("mobs_mc:beef_cooked", {
|
|
description = S("Steak"),
|
|
_doc_items_longdesc = S("Steak is cooked beef from cows and can be eaten."),
|
|
inventory_image = "mcl_mobitems_beef_cooked.png",
|
|
groups = { food = 2, eatable = 8 },
|
|
on_use = minetest.item_eat(8),
|
|
})
|
|
end
|
|
|
|
if c("beef_raw") and c("beef_cooked") then
|
|
minetest.register_craft({
|
|
type = "cooking",
|
|
output = "mobs_mc:beef_cooked",
|
|
recipe = "mobs_mc:beef_raw",
|
|
cooktime = 5,
|
|
})
|
|
end
|
|
|
|
|
|
if c("milk") then
|
|
-- milk
|
|
minetest.register_craftitem("mobs_mc:milk_bucket", {
|
|
description = S("Milk"),
|
|
_doc_items_longdesc = S("Milk is a food item obtained by using a bucket on a cow."),
|
|
inventory_image = "mobs_bucket_milk.png",
|
|
groups = { food = 3, eatable = 1 },
|
|
on_use = minetest.item_eat(1, "bucket:bucket_empty"),
|
|
stack_max = 1,
|
|
})
|
|
end
|
|
|
|
if c("bowl") then
|
|
minetest.register_craftitem("mobs_mc:bowl", {
|
|
description = S("Bowl"),
|
|
_doc_items_longdesc = S("Bowls are mainly used to hold tasty soups."),
|
|
inventory_image = "mcl_core_bowl.png",
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "mobs_mc:bowl",
|
|
recipe = {
|
|
{ "group:wood", "", "group:wood" },
|
|
{ "", "group:wood", "", },
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
type = "fuel",
|
|
recipe = "mobs_mc:bowl",
|
|
burntime = 5,
|
|
})
|
|
end
|
|
|
|
if c("mushroom_stew") then
|
|
minetest.register_craftitem("mobs_mc:mushroom_stew", {
|
|
description = S("Mushroom Stew"),
|
|
_doc_items_longdesc = S("Mushroom stew is a healthy soup."),
|
|
inventory_image = "farming_mushroom_stew.png",
|
|
groups = { food = 3, eatable = 6 },
|
|
on_use = minetest.item_eat(6, "mobs_mc:bowl"),
|
|
stack_max = 1,
|
|
})
|
|
end
|
|
|
|
-- Ender dragon
|
|
if c("dragon_egg") then
|
|
|
|
local dragon_egg_sounds
|
|
if minetest.get_modpath("default") then
|
|
dragon_egg_sounds = default.node_sound_stone_defaults()
|
|
end
|
|
|
|
--ender dragon
|
|
minetest.register_node("mobs_mc:dragon_egg", {
|
|
description = S("Dragon Egg"),
|
|
tiles = {
|
|
"mcl_end_dragon_egg.png",
|
|
"mcl_end_dragon_egg.png",
|
|
"mcl_end_dragon_egg.png",
|
|
"mcl_end_dragon_egg.png",
|
|
"mcl_end_dragon_egg.png",
|
|
"mcl_end_dragon_egg.png",
|
|
},
|
|
drawtype = "nodebox",
|
|
is_ground_content = false,
|
|
paramtype = "light",
|
|
light_source = 1,
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-0.375, -0.5, -0.375, 0.375, -0.4375, 0.375},
|
|
{-0.5, -0.4375, -0.5, 0.5, -0.1875, 0.5},
|
|
{-0.4375, -0.1875, -0.4375, 0.4375, 0, 0.4375},
|
|
{-0.375, 0, -0.375, 0.375, 0.125, 0.375},
|
|
{-0.3125, 0.125, -0.3125, 0.3125, 0.25, 0.3125},
|
|
{-0.25, 0.25, -0.25, 0.25, 0.3125, 0.25},
|
|
{-0.1875, 0.3125, -0.1875, 0.1875, 0.375, 0.1875},
|
|
{-0.125, 0.375, -0.125, 0.125, 0.4375, 0.125},
|
|
{-0.0625, 0.4375, -0.0625, 0.0625, 0.5, 0.0625},
|
|
}
|
|
},
|
|
selection_box = {
|
|
type = "regular",
|
|
},
|
|
groups = {snappy = 1, falling_node = 1, deco_block = 1, not_in_creative_inventory = 1, dig_by_piston = 1 },
|
|
sounds = dragon_egg_sounds,
|
|
-- TODO: Make dragon egg teleport on punching
|
|
})
|
|
end
|
|
|
|
local longdesc_craftitem
|
|
if minetest.get_modpath("doc_items") then
|
|
longdesc_craftitem = doc.sub.items.temp.craftitem
|
|
end
|
|
|
|
-- Enderman
|
|
if c("ender_eye") then
|
|
minetest.register_craftitem("mobs_mc:ender_eye", {
|
|
description = S("Eye of Ender"),
|
|
_doc_items_longdesc = longdesc_craftitem,
|
|
inventory_image = "mcl_end_ender_eye.png",
|
|
groups = { craftitem = 1 },
|
|
})
|
|
end
|
|
|
|
if c("ender_eye") and c("blaze_powder") and c("blaze_rod") then
|
|
minetest.register_craft({
|
|
type = "shapeless",
|
|
output = 'mobs_mc:ender_eye',
|
|
recipe = { 'mobs_mc:blaze_powder', 'mobs_mc:blaze_rod'},
|
|
})
|
|
end
|
|
|
|
-- Ghast
|
|
if c("ghast_tear") then
|
|
minetest.register_craftitem("mobs_mc:ghast_tear", {
|
|
description = S("Ghast Tear"),
|
|
_doc_items_longdesc = S("A ghast tear is an item used in potion brewing. It is dropped from dead ghasts."),
|
|
wield_image = "mcl_mobitems_ghast_tear.png",
|
|
inventory_image = "mcl_mobitems_ghast_tear.png",
|
|
groups = { brewitem = 1 },
|
|
})
|
|
end
|
|
|
|
-- Saddle
|
|
if c("saddle") then
|
|
-- Overwrite the saddle from Mobs Redo
|
|
minetest.register_craftitem(":mobs:saddle", {
|
|
description = S("Saddle"),
|
|
_doc_items_longdesc = S("Saddles can be put on horses, donkeys, mules and pigs in order to mount them."),
|
|
_doc_items_usagehelp = S("Rightclick an animal while holding a saddle to put on the saddle. You can now mount the animal by rightclicking it again."),
|
|
inventory_image = "mcl_mobitems_saddle.png",
|
|
stack_max = 1,
|
|
})
|
|
end
|
|
|
|
if c("saddle") and c("lether") and c("string") and c("iron_ingot") then
|
|
minetest.register_craft({
|
|
output = "mobs_mc:saddle",
|
|
recipe = {
|
|
{"mobs:leather", "mobs:leather", "mobs:leather"},
|
|
{"farming:string", "", "farming:string"},
|
|
{"default:steel_ingot", "", "default:steel_ingot"}
|
|
},
|
|
})
|
|
end
|
|
|
|
-- Horse Armor
|
|
local horse_armor_use = S("Rightclick a horse to put on the horse armor. Donkeys and mules can't wear horse armor.")
|
|
-- TODO: Balance the horse armor strength, compare with MC armor strength
|
|
if c("iron_horse_armor") then
|
|
minetest.register_craftitem("mobs_mc:iron_horse_armor", {
|
|
description = S("Iron Horse Armor"),
|
|
_doc_items_longdesc = S("Iron horse armor can be worn by horses to increase their protection from harm a bit."),
|
|
_doc_items_usagehelp = horse_armor_use,
|
|
inventory_image = "mobs_mc_iron_horse_armor.png",
|
|
_horse_overlay_image = "mobs_mc_horse_armor_iron.png",
|
|
stack_max = 1,
|
|
groups = { horse_armor = 85 },
|
|
})
|
|
end
|
|
if c("gold_horse_armor") then
|
|
minetest.register_craftitem("mobs_mc:gold_horse_armor", {
|
|
description = S("Golden Horse Armor"),
|
|
_doc_items_longdesc = S("Golden horse armor can be worn by horses to increase their protection from harm."),
|
|
_doc_items_usagehelp = horse_armor_use,
|
|
inventory_image = "mobs_mc_gold_horse_armor.png",
|
|
_horse_overlay_image = "mobs_mc_horse_armor_gold.png",
|
|
stack_max = 1,
|
|
groups = { horse_armor = 60 },
|
|
})
|
|
end
|
|
if c("diamond_horse_armor") then
|
|
minetest.register_craftitem("mobs_mc:diamond_horse_armor", {
|
|
description = S("Diamond Horse Armor"),
|
|
_doc_items_longdesc = S("Diamond horse armor can be worn by horses to greatly increase their protection from harm."),
|
|
_doc_items_usagehelp = horse_armor_use,
|
|
inventory_image = "mobs_mc_diamond_horse_armor.png",
|
|
_horse_overlay_image = "mobs_mc_horse_armor_diamond.png",
|
|
stack_max = 1,
|
|
groups = { horse_armor = 45 },
|
|
})
|
|
end
|
|
|
|
-- Pig
|
|
if c("porkchop_raw") then
|
|
minetest.register_craftitem("mobs_mc:porkchop_raw", {
|
|
description = S("Raw Porkchop"),
|
|
_doc_items_longdesc = S("A raw porkchop is the flesh from a pig and can be eaten safely. Cooking it will greatly increase its nutritional value."),
|
|
inventory_image = "mcl_mobitems_porkchop_raw.png",
|
|
groups = { food = 2, eatable = 3 },
|
|
on_use = minetest.item_eat(3),
|
|
})
|
|
end
|
|
|
|
if c("porkchop_cooked") then
|
|
minetest.register_craftitem("mobs_mc:porkchop_cooked", {
|
|
description = S("Cooked Porkchop"),
|
|
_doc_items_longdesc = "Cooked porkchop is the cooked flesh of a pig and is used as food.",
|
|
inventory_image = "mcl_mobitems_porkchop_cooked.png",
|
|
groups = { food = 2, eatable = 8 },
|
|
on_use = minetest.item_eat(8),
|
|
})
|
|
end
|
|
|
|
if c("porkchop_raw") and c("porkchop_cooked") then
|
|
minetest.register_craft({
|
|
type = "cooking",
|
|
output = "mobs_mc:porkchop_cooked",
|
|
recipe = "mobs_mc:porkchop_raw",
|
|
cooktime = 5,
|
|
})
|
|
end
|
|
|
|
if c("carrot_on_a_stick") then
|
|
minetest.register_tool("mobs_mc:carrot_on_a_stick", {
|
|
description = S("Carrot on a Stick"),
|
|
_doc_items_longdesc = S("A carrot on a stick can be used on saddled pigs to ride them. Pigs will also follow anyone who holds a carrot on a stick near them."),
|
|
_doc_items_usagehelp = S("Rightclick a saddled pig with the carrot on a stick to mount it. You can now ride it like a horse."),
|
|
wield_image = "mcl_mobitems_carrot_on_a_stick.png",
|
|
inventory_image = "mcl_mobitems_carrot_on_a_stick.png",
|
|
sounds = { breaks = "default_tool_breaks" },
|
|
})
|
|
end
|
|
|
|
-- Poor-man's recipes for carrot on a stick
|
|
if c("carrot_on_a_stick") and c("stick") and c("string") and minetest.get_modpath("farming") then
|
|
minetest.register_craft({
|
|
output = "mobs_mc:carrot_on_a_stick",
|
|
recipe = {
|
|
{"", "", "farming:string" },
|
|
{"", "group:stick", "farming:string" },
|
|
{"group:stick", "", "farming:bread" },
|
|
}
|
|
})
|
|
|
|
-- FIXME: Identify correct farming mod (check if it includes the carrot item)
|
|
minetest.register_craft({
|
|
output = "mobs_mc:carrot_on_a_stick",
|
|
recipe = {
|
|
{"", "", "farming:string" },
|
|
{"", "group:stick", "farming:string" },
|
|
{"group:stick", "", "farming:carrot" },
|
|
}
|
|
})
|
|
end
|
|
|
|
if c("carrot_on_a_stick") and c("stick") and c("string") and minetest.get_modpath("fishing") and minetest.get_modpath("farming") then
|
|
minetest.register_craft({
|
|
type = "shapeless",
|
|
output = "mobs_mc:carrot_on_a_stick",
|
|
recipe = {"fishing:pole_wood", "farming:carrot"},
|
|
})
|
|
end
|
|
|
|
-- Rabbit
|
|
if c("rabbit_raw") then
|
|
minetest.register_craftitem("mobs_mc:rabbit_raw", {
|
|
description = S("Raw Rabbit"),
|
|
_doc_items_longdesc = S("Raw rabbit is a food item from a dead rabbit. It can be eaten safely. Cooking it will increase its nutritional value."),
|
|
inventory_image = "mcl_mobitems_rabbit_raw.png",
|
|
groups = { food = 2, eatable = 3 },
|
|
on_use = minetest.item_eat(3),
|
|
})
|
|
end
|
|
|
|
if c("rabbit_cooked") then
|
|
minetest.register_craftitem("mobs_mc:rabbit_cooked", {
|
|
description = S("Cooked Rabbit"),
|
|
_doc_items_longdesc = S("This is a food item which can be eaten."),
|
|
inventory_image = "mcl_mobitems_rabbit_cooked.png",
|
|
groups = { food = 2, eatable = 5 },
|
|
on_use = minetest.item_eat(5),
|
|
})
|
|
end
|
|
|
|
if c("rabbit_raw") and c("rabbit_cooked") then
|
|
minetest.register_craft({
|
|
type = "cooking",
|
|
output = "mobs_mc:rabbit_cooked",
|
|
recipe = "mobs_mc:rabbit_raw",
|
|
cooktime = 5,
|
|
})
|
|
end
|
|
|
|
if c("rabbit_hide") then
|
|
minetest.register_craftitem("mobs_mc:rabbit_hide", {
|
|
description = S("Rabbit Hide"),
|
|
_doc_items_longdesc = S("Rabbit hide is used to create leather."),
|
|
inventory_image = "mcl_mobitems_rabbit_hide.png"
|
|
})
|
|
end
|
|
|
|
if c("leather") and c("rabbit_hide") then
|
|
minetest.register_craft({
|
|
output = "mobs:leather",
|
|
recipe = {
|
|
{ "mobs_mc:rabbit_hide", "mobs_mc:rabbit_hide" },
|
|
{ "mobs_mc:rabbit_hide", "mobs_mc:rabbit_hide" },
|
|
}
|
|
})
|
|
end
|
|
|
|
if c("rabbit_foot") then
|
|
minetest.register_craftitem("mobs_mc:rabbit_foot", {
|
|
description = S("Rabbit's Foot"),
|
|
_doc_items_longdesc = S("This item is used in brewing."),
|
|
inventory_image = "mcl_mobitems_rabbit_foot.png"
|
|
})
|
|
end
|
|
|
|
-- Sheep
|
|
if c("mutton_raw") then
|
|
minetest.register_craftitem("mobs_mc:mutton_raw", {
|
|
description = S("Raw Mutton"),
|
|
_doc_items_longdesc = S("Raw mutton is the flesh from a sheep and can be eaten safely. Cooking it will greatly increase its nutritional value."),
|
|
inventory_image = "mcl_mobitems_mutton_raw.png",
|
|
groups = { food = 2, eatable = 4 },
|
|
on_use = minetest.item_eat(4),
|
|
})
|
|
end
|
|
|
|
if c("mutton_cooked") then
|
|
minetest.register_craftitem("mobs_mc:mutton_cooked", {
|
|
description = S("Cooked Mutton"),
|
|
_doc_items_longdesc = S("Cooked mutton is the cooked flesh from a sheep and is used as food."),
|
|
inventory_image = "mcl_mobitems_mutton_cooked.png",
|
|
groups = { food = 2, eatable = 8 },
|
|
on_use = minetest.item_eat(8),
|
|
})
|
|
end
|
|
|
|
if c("mutton_raw") and c("mutton_cooked") then
|
|
minetest.register_craft({
|
|
type = "cooking",
|
|
output = "mobs_mc:mutton_cooked",
|
|
recipe = "mobs_mc:mutton_raw",
|
|
cooktime = 5,
|
|
})
|
|
end
|
|
|
|
-- Shulker
|
|
if c("shulker_shell") then
|
|
minetest.register_craftitem("mobs_mc:shulker_shell", {
|
|
description = S("Shulker Shell"),
|
|
_doc_items_longdesc = S("Shulker shells are used in crafting. They are dropped from dead shulkers."),
|
|
inventory_image = "mcl_mobitems_shulker_shell.png",
|
|
groups = { craftitem = 1 },
|
|
})
|
|
end
|
|
|
|
-- Magma cube
|
|
if c("magma_cream") then
|
|
minetest.register_craftitem("mobs_mc:magma_cream", {
|
|
description = S("Magma Cream"),
|
|
_doc_items_longdesc = S("Magma cream is a crafting component."),
|
|
wield_image = "mcl_mobitems_magma_cream.png",
|
|
inventory_image = "mcl_mobitems_magma_cream.png",
|
|
groups = { brewitem = 1 },
|
|
})
|
|
end
|
|
|
|
-- Slime
|
|
if c("slimeball") then
|
|
minetest.register_craftitem("mobs_mc:slimeball", {
|
|
description = S("Slimeball"),
|
|
_doc_items_longdesc = S("Slimeballs are used in crafting. They are dropped from slimes."),
|
|
inventory_image = "mcl_mobitems_slimeball.png"
|
|
})
|
|
if minetest.get_modpath("mesecons_materials") then
|
|
minetest.register_craft({
|
|
output = "mesecons_materials:glue",
|
|
recipe = {{ "mobs_mc:slimeball" }},
|
|
})
|
|
end
|
|
end
|
|
|
|
-- Spider
|
|
if c("spider_eye") then
|
|
minetest.register_craftitem("mobs_mc:spider_eye", {
|
|
description = S("Spider Eye"),
|
|
_doc_items_longdesc = S("Spider eyes are used mainly in crafting and brewing. Spider eyes can be eaten, but they poison you and reduce your health by 2 hit points."),
|
|
inventory_image = "mcl_mobitems_spider_eye.png",
|
|
wield_image = "mcl_mobitems_spider_eye.png",
|
|
-- Simplified poisonous food
|
|
groups = { food = 2, eatable = -2 },
|
|
on_use = minetest.item_eat(-2),
|
|
})
|
|
end
|
|
|
|
-- Evoker
|
|
if c("totem") then
|
|
local hud_totem = {}
|
|
|
|
-- Totem of Undying
|
|
minetest.register_craftitem("mobs_mc:totem", {
|
|
description = S("Totem of Undying"),
|
|
_doc_items_longdesc = S("A totem of undying is a rare artifact which may safe you from certain death."),
|
|
_doc_items_usagehelp = S("The totem only works while you hold it in your hand. If you receive fatal damage, you are saved from death and you get a second chance with 1 HP. The totem is destroyed in the process, however."),
|
|
inventory_image = "mcl_totems_totem.png",
|
|
wield_image = "mcl_totems_totem.png",
|
|
stack_max = 1,
|
|
})
|
|
|
|
minetest.register_on_leaveplayer(function(player)
|
|
hud_totem[player:get_player_name()] = nil
|
|
end)
|
|
|
|
-- Save the player from death when holding totem of undying in hand
|
|
minetest.register_on_player_hpchange(function(player, hp_change)
|
|
local hp = player:get_hp()
|
|
-- Fatal damage?
|
|
if hp + hp_change <= 0 then
|
|
local wield = player:get_wielded_item()
|
|
if wield:get_name() == "mobs_mc:totem" then
|
|
local ppos = player:get_pos()
|
|
local pnname = minetest.get_node(ppos).name
|
|
-- Some exceptions when _not_ to save the player
|
|
for n=1, #mobs_mc.misc.totem_fail_nodes do
|
|
if pnname == mobs_mc.misc.totem_fail_nodes[n] then
|
|
return hp_change
|
|
end
|
|
end
|
|
-- Reset breath as well
|
|
if player:get_breath() < 11 then
|
|
player:set_breath(10)
|
|
end
|
|
if not minetest.settings:get_bool("creative_mode") then
|
|
wield:take_item()
|
|
player:set_wielded_item(wield)
|
|
end
|
|
-- Effects
|
|
minetest.sound_play({name = "mcl_totems_totem", gain=1}, {pos=ppos, max_hear_distance=16})
|
|
|
|
-- Big totem overlay
|
|
if not hud_totem[player:get_player_name()] then
|
|
hud_totem[player:get_player_name()] = player:hud_add({
|
|
hud_elem_type = "image",
|
|
text = "mcl_totems_totem.png",
|
|
position = { x=0.5, y=1 },
|
|
scale = { x=17, y=17 },
|
|
offset = { x=0, y=-178 },
|
|
})
|
|
minetest.after(3, function(player)
|
|
if player and player:is_player() then
|
|
local name = player:get_player_name()
|
|
if hud_totem[name] then
|
|
player:hud_remove(hud_totem[name])
|
|
hud_totem[name] = nil
|
|
end
|
|
end
|
|
end, player)
|
|
end
|
|
|
|
-- Set HP to exactly 1
|
|
return -hp + 1
|
|
end
|
|
end
|
|
return hp_change
|
|
end, true)
|
|
end
|
|
|
|
-- Rotten flesh
|
|
if c("rotten_flesh") then
|
|
minetest.register_craftitem("mobs_mc:rotten_flesh", {
|
|
description = S("Rotten Flesh"),
|
|
_doc_items_longdesc = S("Yuck! This piece of flesh clearly has seen better days. Eating it will only poison you and reduces your health by 4 hit points. But tamed wolves can eat it just fine."),
|
|
inventory_image = "mcl_mobitems_rotten_flesh.png",
|
|
-- Simplified poisonous food
|
|
groups = { food = 2, eatable = -4 },
|
|
on_use = minetest.item_eat(-4),
|
|
})
|
|
end
|
|
|
|
-- Misc.
|
|
if c("nether_star") then
|
|
minetest.register_craftitem("mobs_mc:nether_star", {
|
|
description = S("Nether Star"),
|
|
_doc_items_longdesc = S("A nether star is a crafting component. It is dropped from the Wither."),
|
|
inventory_image = "mcl_mobitems_nether_star.png"
|
|
})
|
|
end
|
|
|
|
if c("snowball") and minetest.get_modpath("default") then
|
|
minetest.register_craft({
|
|
output = "mobs_mc:snowball 2",
|
|
recipe = {
|
|
{"default:snow"},
|
|
},
|
|
})
|
|
minetest.register_craft({
|
|
output = "default:snow 2",
|
|
recipe = {
|
|
{"mobs_mc:snowball", "mobs_mc:snowball"},
|
|
{"mobs_mc:snowball", "mobs_mc:snowball"},
|
|
},
|
|
})
|
|
-- Change the appearance of default snow to avoid confusion with snowball
|
|
minetest.override_item("default:snow", {
|
|
inventory_image = "",
|
|
wield_image = "",
|
|
})
|
|
end
|
|
|
|
if c("bone") then
|
|
minetest.register_craftitem("mobs_mc:bone", {
|
|
description = S("Bone"),
|
|
_doc_items_longdesc = S("Bones can be used to tame wolves so they will protect you. They are also useful as a crafting ingredient."),
|
|
_doc_items_usagehelp = S("Hold the bone in your hand near wolves to attract them. Rightclick the wolf to give it a bone and tame it."),
|
|
inventory_image = "mcl_mobitems_bone.png"
|
|
})
|
|
if minetest.get_modpath("bones") then
|
|
minetest.register_craft({
|
|
output = "mobs_mc:bone 3",
|
|
recipe = {{ "bones:bones" }},
|
|
})
|
|
end
|
|
end
|