Start adding crafting recipes to everything with the new crafting system and fix some things with armor

This commit is contained in:
KaadmY 2017-05-15 20:57:30 -07:00
parent d7b63ec912
commit dc8674b93f
7 changed files with 263 additions and 232 deletions

View File

@ -1,2 +1,3 @@
default default
crafting
achievements achievements

View File

@ -6,24 +6,44 @@
armor = {} armor = {}
armor.player_skin = "character.png" armor.player_skin = "character.png"
armor.update_time = 1
armor.materials = { armor.materials = {
-- material craftitem % description -- material craftitem % description
{"wood", "group:planks", 15, "Wooden"}, {"wood", "group:planks", 15, "Wooden"},
{"steel", "default:ingot_steel", 30, "Steel"}, {"steel", "default:ingot_steel", 30, "Steel"},
{"chainmail", "armor:chainmail_sheet", 45, "Chainmail"}, {"chainmail", "armor:chainmail_sheet", 45, "Chainmail"},
{"carbonsteel", "default:ingot_carbonsteel", 60, "Carbonsteel"}, {"carbonsteel", "default:ingot_carbonsteel", 60, "Carbonsteel"},
} }
armor.slots = {"helmet", "chestplate", "boots"} -- Usable slots
local form_armor = default.ui.get_page("default:2part") armor.slots = {"helmet", "chestplate", "boots"}
default.ui.register_page("armor:armor", form_armor)
local enable_drop = minetest.setting_getbool("drop_items_on_die") or false local enable_drop = minetest.setting_getbool("drop_items_on_die") or false
local armor_timer = 10 -- Timer
local timer_interval = 1
local timer = 10
-- Formspec
local form_armor = default.ui.get_page("default:2part")
form_armor = form_armor .. "list[current_player;main;0.25,4.75;8,4;]"
form_armor = form_armor .. default.ui.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form_armor = form_armor .. default.ui.get_itemslot_bg(0.25, 5.75, 8, 3)
form_armor = form_armor .. "listring[current_player;main]"
form_armor = form_armor .. "label[3.25,1;Helmet]"
form_armor = form_armor .. "label[3.25,2;Chestplate]"
form_armor = form_armor .. "label[3.25,3;Boots]"
form_armor = form_armor .. "list[current_player;armor;2.25,0.75;1,3;]"
form_armor = form_armor .. "listring[current_player;armor]"
form_armor = form_armor .. default.ui.get_itemslot_bg(2.25, 0.75, 1, 3)
default.ui.register_page("armor:armor", form_armor)
function armor.is_armor(itemname) function armor.is_armor(itemname)
local item = minetest.registered_items[itemname] local item = minetest.registered_items[itemname]
@ -57,9 +77,10 @@ function armor.get_texture(player, base)
local image = base local image = base
for _, slot in ipairs(armor.slots) do for slot_index, slot in ipairs(armor.slots) do
local itemstack = inv:get_stack("armor_"..slot, 1) local itemstack = inv:get_stack("armor", slot_index)
local itemname = itemstack:get_name() local itemname = itemstack:get_name()
if armor.is_armor(itemname) and armor.is_slot(itemname, slot) then if armor.is_armor(itemname) and armor.is_slot(itemname, slot) then
local item = minetest.registered_items[itemname] local item = minetest.registered_items[itemname]
local mat = armor.materials[item.groups.armor_material][1] local mat = armor.materials[item.groups.armor_material][1]
@ -68,7 +89,7 @@ function armor.get_texture(player, base)
end end
end end
-- print("[armor] Got armor texture: " .. image) -- print("[armor] Got armor texture: " .. image)
return image return image
end end
@ -81,8 +102,8 @@ function armor.get_groups(player)
local inv = player:get_inventory() local inv = player:get_inventory()
for _, slot in ipairs(armor.slots) do for slot_index, slot in ipairs(armor.slots) do
local itemstack = inv:get_stack("armor_"..slot, 1) local itemstack = inv:get_stack("armor", slot_index)
local itemname = itemstack:get_name() local itemname = itemstack:get_name()
if armor.is_armor(itemname) then if armor.is_armor(itemname) then
@ -96,9 +117,11 @@ function armor.get_groups(player)
if match_mat == nil then if match_mat == nil then
match_mat = mat match_mat = mat
end end
if mat == match_mat then if mat == match_mat then
match_amt = match_amt + 1 match_amt = match_amt + 1
end end
break break
end end
end end
@ -106,7 +129,9 @@ function armor.get_groups(player)
end end
end end
if match_amt == #armor.slots then -- if full set of same armor material, then boost armor by 10% -- If full set of same armor material, then boost armor by 10%
if match_amt == #armor.slots then
groups.fleshy = groups.fleshy - 10 groups.fleshy = groups.fleshy - 10
end end
@ -118,10 +143,8 @@ end
function armor.init(player) function armor.init(player)
local inv = player:get_inventory() local inv = player:get_inventory()
for _, slot in ipairs(armor.slots) do if inv:get_size("armor") ~= 3 then
if inv:get_size("armor_"..slot) ~= 1 then inv:set_size("armor", 3)
inv:set_size("armor_"..slot, 1)
end
end end
end end
@ -143,13 +166,13 @@ local function on_joinplayer(player)
armor.init(player) armor.init(player)
end end
local function on_die(player) local function on_dieplayer(player)
local pos = player:getpos() local pos = player:getpos()
local inv = player:get_inventory() local inv = player:get_inventory()
for _, slot in ipairs(armor.slots) do for slot_index, slot in ipairs(armor.slots) do
local item = inv:get_stack("armor_"..slot, 1) local item = inv:get_stack("armor", slot_index)
local rpos = { local rpos = {
x = pos.x + math.random(-0.2, 0.2), x = pos.x + math.random(-0.2, 0.2),
@ -165,7 +188,7 @@ local function on_die(player)
x = math.random(-0.3, 0.3), x = math.random(-0.3, 0.3),
y = 3, y = 3,
z = math.random(-0.3, 0.3), z = math.random(-0.3, 0.3),
}) })
end end
item:clear() item:clear()
@ -173,53 +196,73 @@ local function on_die(player)
end end
end end
local function step(dtime) local function on_globalstep(dtime)
armor_timer = armor_timer + dtime timer = timer + dtime
if armor_timer > armor.update_time then if timer < timer_interval then
for _, player in pairs(minetest.get_connected_players()) do return
armor.update(player) end
end
armor_timer = 0 timer = 0
for _, player in pairs(minetest.get_connected_players()) do
armor.update(player)
end end
end end
if enable_drop then
minetest.register_on_dieplayer(on_dieplayer)
end
minetest.register_on_newplayer(on_newplayer)
minetest.register_on_joinplayer(on_joinplayer)
minetest.register_globalstep(on_globalstep)
-- Chainmail
minetest.register_craftitem( minetest.register_craftitem(
"armor:chainmail_sheet", "armor:chainmail_sheet",
{ {
description = "Chainmail sheet", description = "Chainmail Sheet",
inventory_image = "armor_chainmail.png", inventory_image = "armor_chainmail.png",
wield_image = "armor_chainmail.png", wield_image = "armor_chainmail.png",
stack_max = 20, stack_max = 20,
}) })
minetest.register_craft( crafting.register_craft(
{ {
output = "armor:chainmail_sheet 3", output = "armor:chainmail_sheet 3",
recipe = { items = {
{"default:ingot_steel", "", "default:ingot_steel"}, "default:ingot_steel 5",
{"", "default:ingot_steel", ""},
{"default:ingot_steel", "", "default:ingot_steel"},
} }
}) })
-- Armor pieces
for mat_index, _ in ipairs(armor.materials) do for mat_index, _ in ipairs(armor.materials) do
local def = armor.materials[mat_index] local def = armor.materials[mat_index]
local mat = def[1] local mat = def[1]
local armor_def = math.floor(def[3] / #armor.slots) local armor_def = math.floor(def[3] / #armor.slots)
-- print("Material " .. mat .. ": " .. armor_def) -- print("Material " .. mat .. ": " .. armor_def)
for _, slot in ipairs(armor.slots) do for _, slot in ipairs(armor.slots) do
minetest.register_craftitem( local slot_pretty = slot:gsub(
"armor:"..slot.."_"..mat, "(%a)([%w_']*)",
{ function(first, rest)
description = def[4].." "..slot, return first:upper() .. rest:lower()
end)
inventory_image = "armor_"..slot.."_"..mat.."_inventory.png", minetest.register_craftitem(
wield_image = "armor_"..slot.."_"..mat.."_inventory.png", "armor:" .. slot .. "_" .. mat,
{
description = def[4] .. " " .. slot_pretty,
inventory_image = "armor_" .. slot .. "_" .. mat .. "_inventory.png",
wield_image = "armor_" .. slot .. "_" .. mat .. "_inventory.png",
groups = { groups = {
is_armor = 1, is_armor = 1,
@ -228,72 +271,34 @@ for mat_index, _ in ipairs(armor.materials) do
}, },
stack_max = 1, stack_max = 1,
}) })
end end
local n = def[2] crafting.register_craft(
{
output = "armor:helmet_" .. mat,
items = {
def[2] .. " 5",
}
})
minetest.register_craft( crafting.register_craft(
{ {
output = "armor:helmet_"..mat, output = "armor:chestplate_" .. mat,
recipe = { items = {
{n, n, n}, def[2] .. " 8",
{n, "", n},
{"", "", ""},
} }
}) })
minetest.register_craft(
crafting.register_craft(
{ {
output = "armor:chestplate_"..mat, output = "armor:boots_" .. mat,
recipe = { items = {
{n, "", n}, def[2] .. " 6",
{n, n, n},
{n, n, n},
} }
}) })
minetest.register_craft(
{
output = "armor:boots_"..mat,
recipe = {
{"", "", ""},
{n, "", n},
{n, "", n},
}
})
end end
minetest.register_on_newplayer(on_newplayer)
minetest.register_on_joinplayer(on_joinplayer)
if enable_drop then
minetest.register_on_dieplayer(on_die)
end
minetest.register_globalstep(step)
local form_armor = default.ui.get_page("default:2part")
form_armor = form_armor .. "list[current_player;main;0.25,4.75;8,4;]"
form_armor = form_armor .. default.ui.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form_armor = form_armor .. default.ui.get_itemslot_bg(0.25, 5.75, 8, 3)
form_armor = form_armor .. "listring[current_player;main]"
form_armor = form_armor .. "label[3.25,3;Boots]"
form_armor = form_armor .. "list[current_player;armor_boots;2.25,2.75;1,1;]"
form_armor = form_armor .. "listring[current_player;armor_boots]"
form_armor = form_armor .. default.ui.get_itemslot_bg(2.25, 2.75, 1, 1)
form_armor = form_armor .. "label[3.25,2;Chestplate]"
form_armor = form_armor .. "list[current_player;armor_chestplate;2.25,1.75;1,1;]"
form_armor = form_armor .. "listring[current_player;armor_chestplate]"
form_armor = form_armor .. default.ui.get_itemslot_bg(2.25, 1.75, 1, 1)
form_armor = form_armor .. "label[3.25,1;Helmet]"
form_armor = form_armor .. "list[current_player;armor_helmet;2.25,0.75;1,1;]"
form_armor = form_armor .. "listring[current_player;armor_helmet]"
form_armor = form_armor .. default.ui.get_itemslot_bg(2.25, 0.75, 1, 1)
default.ui.register_page("armor:armor", form_armor)
-- Achievements -- Achievements
achievements.register_achievement( achievements.register_achievement(
@ -303,15 +308,15 @@ achievements.register_achievement(
description = "Craft a piece of armor", description = "Craft a piece of armor",
times = 1, times = 1,
craftitem = "group:is_armor", craftitem = "group:is_armor",
}) })
achievements.register_achievement( achievements.register_achievement(
"warrior", "warrior",
{ {
title = "Warrior", title = "Warrior",
description = "Craft 10 piece of armor", description = "Craft 10 pieces of armor",
times = 10, times = 10,
craftitem = "group:is_armor", craftitem = "group:is_armor",
}) })
default.log("mod:armor", "loaded") default.log("mod:armor", "loaded")

View File

@ -189,8 +189,8 @@ crafting.register_craft(
{ {
output = "default:dust_carbonsteel", output = "default:dust_carbonsteel",
items = { items = {
"default:lump_coal", "default:lump_coal 2",
"default:lump_iron 2", "default:lump_iron 3",
} }
}) })

View File

@ -1,2 +1,3 @@
default default
crafting
achievements achievements

View File

@ -6,6 +6,7 @@
door = {} door = {}
-- Registers a door -- Registers a door
function door.register_door(name, def) function door.register_door(name, def)
def.groups.not_in_creative_inventory = 1 def.groups.not_in_creative_inventory = 1
@ -30,8 +31,8 @@ function door.register_door(name, def)
if not def.sound_open_door then if not def.sound_open_door then
def.sound_open_door = "door_open" def.sound_open_door = "door_open"
end end
minetest.register_craftitem( minetest.register_craftitem(
name, { name, {
description = def.description, description = def.description,
@ -40,58 +41,59 @@ function door.register_door(name, def)
groups = def.groups, groups = def.groups,
on_place = function(itemstack, placer, pointed_thing) on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then if not pointed_thing.type == "node" then
return itemstack return itemstack
end end
local ptu = pointed_thing.under local ptu = pointed_thing.under
local nu = minetest.get_node(ptu) local nu = minetest.get_node(ptu)
if minetest.registered_nodes[nu.name].on_rightclick then if minetest.registered_nodes[nu.name].on_rightclick then
return minetest.registered_nodes[nu.name].on_rightclick(ptu, nu, placer, itemstack) return minetest.registered_nodes[nu.name].on_rightclick(
end ptu, nu, placer, itemstack)
end
local pt = pointed_thing.above local pt = pointed_thing.above
local pt2 = {x=pt.x, y=pt.y, z=pt.z} local pt2 = {x=pt.x, y=pt.y, z=pt.z}
pt2.y = pt2.y+1 pt2.y = pt2.y+1
if if
not minetest.registered_nodes[minetest.get_node(pt).name].buildable_to or not minetest.registered_nodes[minetest.get_node(pt).name].buildable_to or
not minetest.registered_nodes[minetest.get_node(pt2).name].buildable_to or not minetest.registered_nodes[minetest.get_node(pt2).name].buildable_to or
not placer or not placer or
not placer:is_player() not placer:is_player()
then then
return itemstack return itemstack
end end
local p2 = minetest.dir_to_facedir(placer:get_look_dir()) local p2 = minetest.dir_to_facedir(placer:get_look_dir())
local pt3 = {x=pt.x, y=pt.y, z=pt.z} local pt3 = {x=pt.x, y=pt.y, z=pt.z}
if p2 == 0 then if p2 == 0 then
pt3.x = pt3.x-1 pt3.x = pt3.x-1
elseif p2 == 1 then elseif p2 == 1 then
pt3.z = pt3.z+1 pt3.z = pt3.z+1
elseif p2 == 2 then elseif p2 == 2 then
pt3.x = pt3.x+1 pt3.x = pt3.x+1
elseif p2 == 3 then elseif p2 == 3 then
pt3.z = pt3.z-1 pt3.z = pt3.z-1
end end
if minetest.get_item_group(minetest.get_node(pt3).name, "door") == 0 then if minetest.get_item_group(minetest.get_node(pt3).name, "door") == 0 then
minetest.set_node(pt, {name=name.."_b_1", param2=p2}) minetest.set_node(pt, {name=name.."_b_1", param2=p2})
minetest.set_node(pt2, {name=name.."_t_1", param2=p2}) minetest.set_node(pt2, {name=name.."_t_1", param2=p2})
else else
minetest.set_node(pt, {name=name.."_b_2", param2=p2}) minetest.set_node(pt, {name=name.."_b_2", param2=p2})
minetest.set_node(pt2, {name=name.."_t_2", param2=p2}) minetest.set_node(pt2, {name=name.."_t_2", param2=p2})
minetest.get_meta(pt):set_int("right", 1) minetest.get_meta(pt):set_int("right", 1)
minetest.get_meta(pt2):set_int("right", 1) minetest.get_meta(pt2):set_int("right", 1)
end end
itemstack:take_item() itemstack:take_item()
return itemstack return itemstack
end, end,
}) })
local tt = def.tiles_top local tt = def.tiles_top
local tb = def.tiles_bottom local tb = def.tiles_bottom
local function after_dig_node(pos, name, digger) local function after_dig_node(pos, name, digger)
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
if node.name == name then if node.name == name then
@ -106,23 +108,35 @@ function door.register_door(name, def)
end end
local p2 = minetest.get_node(pos).param2 local p2 = minetest.get_node(pos).param2
p2 = params[p2+1] p2 = params[p2+1]
minetest.swap_node(pos, {name=replace_dir, param2=p2}) minetest.swap_node(pos, {name=replace_dir, param2=p2})
pos.y = pos.y-dir pos.y = pos.y-dir
minetest.swap_node(pos, {name=replace, param2=p2}) minetest.swap_node(pos, {name=replace, param2=p2})
local snd_1 = def.sound_close_door local snd_1 = def.sound_close_door
local snd_2 = def.sound_open_door local snd_2 = def.sound_open_door
if params[1] == 3 then if params[1] == 3 then
snd_1 = def.sound_open_door snd_1 = def.sound_open_door
snd_2 = def.sound_close_door snd_2 = def.sound_close_door
end end
if minetest.get_meta(pos):get_int("right") ~= 0 then if minetest.get_meta(pos):get_int("right") ~= 0 then
minetest.sound_play(snd_1, {pos = pos, gain = 0.8, max_hear_distance = 10}) minetest.sound_play(
snd_1,
{
pos = pos,
gain = 0.8,
max_hear_distance = 10
})
else else
minetest.sound_play(snd_2, {pos = pos, gain = 0.8, max_hear_distance = 10}) minetest.sound_play(
snd_2,
{
pos = pos,
gain = 0.8,
max_hear_distance = 10
})
end end
end end
@ -151,22 +165,22 @@ function door.register_door(name, def)
fixed = def.selection_box_bottom fixed = def.selection_box_bottom
}, },
groups = def.groups, groups = def.groups,
after_dig_node = function(pos, oldnode, oldmetadata, digger) after_dig_node = function(pos, oldnode, oldmetadata, digger)
pos.y = pos.y+1 pos.y = pos.y+1
after_dig_node(pos, name.."_t_1", digger) after_dig_node(pos, name.."_t_1", digger)
end, end,
on_rightclick = function(pos, node, clicker) on_rightclick = function(pos, node, clicker)
if check_player_priv(pos, clicker) then if check_player_priv(pos, clicker) then
on_rightclick(pos, 1, name.."_t_1", name.."_b_2", name.."_t_2", {1,2,3,0}) on_rightclick(pos, 1, name.."_t_1", name.."_b_2", name.."_t_2", {1,2,3,0})
end end
end, end,
can_dig = check_player_priv, can_dig = check_player_priv,
sounds = def.sounds, sounds = def.sounds,
sunlight_propagates = def.sunlight sunlight_propagates = def.sunlight
}) })
minetest.register_node( minetest.register_node(
name.."_t_1", name.."_t_1",
@ -185,22 +199,22 @@ function door.register_door(name, def)
fixed = def.selection_box_top fixed = def.selection_box_top
}, },
groups = def.groups, groups = def.groups,
after_dig_node = function(pos, oldnode, oldmetadata, digger) after_dig_node = function(pos, oldnode, oldmetadata, digger)
pos.y = pos.y-1 pos.y = pos.y-1
after_dig_node(pos, name.."_b_1", digger) after_dig_node(pos, name.."_b_1", digger)
end, end,
on_rightclick = function(pos, node, clicker) on_rightclick = function(pos, node, clicker)
if check_player_priv(pos, clicker) then if check_player_priv(pos, clicker) then
on_rightclick(pos, -1, name.."_b_1", name.."_t_2", name.."_b_2", {1,2,3,0}) on_rightclick(pos, -1, name.."_b_1", name.."_t_2", name.."_b_2", {1,2,3,0})
end end
end, end,
can_dig = check_player_priv, can_dig = check_player_priv,
sounds = def.sounds, sounds = def.sounds,
sunlight_propagates = def.sunlight, sunlight_propagates = def.sunlight,
}) })
minetest.register_node( minetest.register_node(
name.."_b_2", name.."_b_2",
@ -219,22 +233,22 @@ function door.register_door(name, def)
fixed = def.selection_box_bottom fixed = def.selection_box_bottom
}, },
groups = def.groups, groups = def.groups,
after_dig_node = function(pos, oldnode, oldmetadata, digger) after_dig_node = function(pos, oldnode, oldmetadata, digger)
pos.y = pos.y+1 pos.y = pos.y+1
after_dig_node(pos, name.."_t_2", digger) after_dig_node(pos, name.."_t_2", digger)
end, end,
on_rightclick = function(pos, node, clicker) on_rightclick = function(pos, node, clicker)
if check_player_priv(pos, clicker) then if check_player_priv(pos, clicker) then
on_rightclick(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1", {3,0,1,2}) on_rightclick(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1", {3,0,1,2})
end end
end, end,
can_dig = check_player_priv, can_dig = check_player_priv,
sounds = def.sounds, sounds = def.sounds,
sunlight_propagates = def.sunlight sunlight_propagates = def.sunlight
}) })
minetest.register_node( minetest.register_node(
name.."_t_2", name.."_t_2",
@ -253,22 +267,22 @@ function door.register_door(name, def)
fixed = def.selection_box_top fixed = def.selection_box_top
}, },
groups = def.groups, groups = def.groups,
after_dig_node = function(pos, oldnode, oldmetadata, digger) after_dig_node = function(pos, oldnode, oldmetadata, digger)
pos.y = pos.y-1 pos.y = pos.y-1
after_dig_node(pos, name.."_b_2", digger) after_dig_node(pos, name.."_b_2", digger)
end, end,
on_rightclick = function(pos, node, clicker) on_rightclick = function(pos, node, clicker)
if check_player_priv(pos, clicker) then if check_player_priv(pos, clicker) then
on_rightclick(pos, -1, name.."_b_2", name.."_t_1", name.."_b_1", {3,0,1,2}) on_rightclick(pos, -1, name.."_b_2", name.."_t_1", name.."_b_1", {3,0,1,2})
end end
end, end,
can_dig = check_player_priv, can_dig = check_player_priv,
sounds = def.sounds, sounds = def.sounds,
sunlight_propagates = def.sunlight sunlight_propagates = def.sunlight
}) })
end end
@ -282,17 +296,17 @@ door.register_door(
tiles_bottom = {"door_wood_b.png", "door_brown.png"}, tiles_bottom = {"door_wood_b.png", "door_brown.png"},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
sunlight = false, sunlight = false,
}) })
minetest.register_craft( crafting.register_craft(
{ {
output = "door:door_wood", output = "door:door_wood",
recipe = { items = {
{"default:fiber", "default:glass", "default:fiber"}, "default:fiber 6",
{"default:stick", "default:stick", "default:stick"}, "default:stick 7",
{"default:fiber", "group:planks", "default:fiber"}, "group:planks 2",
} }
}) })
door.register_door( door.register_door(
"door:door_stone", "door:door_stone",
@ -304,17 +318,17 @@ door.register_door(
tiles_bottom = {"door_stone_b.png", "door_brown.png"}, tiles_bottom = {"door_stone_b.png", "door_brown.png"},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
sunlight = false, sunlight = false,
}) })
minetest.register_craft( crafting.register_craft(
{ {
output = "door:door_stone", output = "door:door_stone",
recipe = { items = {
{"default:fiber", "default:glass", "default:fiber"}, "default:fiber 6",
{"default:stick", "default:stick", "default:stick"}, "default:stick 7",
{"default:fiber", "group:stone", "default:fiber"}, "group:stone 2",
} }
}) })
-- Achievements -- Achievements
@ -325,6 +339,6 @@ achievements.register_achievement(
description = "Craft a door", description = "Craft a door",
times = 1, times = 1,
craftitem = "group:door", craftitem = "group:door",
}) })
default.log("mod:door", "loaded") default.log("mod:door", "loaded")

View File

@ -1,23 +1,30 @@
--
-- Crafts and items
--
-- Items
minetest.register_craftitem( minetest.register_craftitem(
"farming:cotton", "farming:cotton",
{ {
description = "Cotton", description = "Cotton",
inventory_image = "farming_cotton.png" inventory_image = "farming_cotton.png"
}) })
minetest.register_craftitem( minetest.register_craftitem(
"farming:wheat", "farming:wheat",
{ {
description = "Wheat", description = "Wheat",
inventory_image = "farming_wheat.png" inventory_image = "farming_wheat.png"
}) })
minetest.register_craftitem( minetest.register_craftitem(
"farming:flour", "farming:flour",
{ {
description = "Flour", description = "Flour",
inventory_image = "farming_flour.png" inventory_image = "farming_flour.png"
}) })
minetest.register_craftitem( minetest.register_craftitem(
"farming:bread", "farming:bread",
@ -25,25 +32,27 @@ minetest.register_craftitem(
description = "Bread", description = "Bread",
inventory_image = "farming_bread.png", inventory_image = "farming_bread.png",
on_use = minetest.item_eat({hp = 4, sat = 40}) on_use = minetest.item_eat({hp = 4, sat = 40})
}) })
minetest.register_craft( -- Craft recipes
crafting.register_craft(
{ {
output = "farming:flour", output = "farming:flour",
recipe = { items = {
{"farming:wheat", "farming:wheat"}, "farming:wheat 4",
{"farming:wheat", "farming:wheat"},
} }
}) })
minetest.register_craft( crafting.register_craft(
{ {
output = "farming:cotton_bale 2", output = "farming:cotton_bale 2",
recipe = { items = {
{"farming:cotton", "farming:cotton"}, "farming:cotton 2",
{"farming:cotton", "farming:cotton"},
} }
}) })
-- Cooking
minetest.register_craft( minetest.register_craft(
{ {
@ -51,6 +60,6 @@ minetest.register_craft(
output = "farming:bread", output = "farming:bread",
recipe = "farming:flour", recipe = "farming:flour",
cooktime = 15, cooktime = 15,
}) })
default.log("craft", "loaded") default.log("craft", "loaded")

View File

@ -1,3 +1,4 @@
default default
weather weather
crafting
achievements achievements