Added first example of mod crafter
parent
7dc9817ba6
commit
1016cfa7fb
|
@ -16,19 +16,19 @@ civilization.register_age_node({
|
|||
civilization.register_age_node({
|
||||
name = "Stone",
|
||||
tiles = "default_cobble.png",
|
||||
nodes = {"default:stone", "default:cobble"}
|
||||
nodes = {"default:stone", "default:cobble", "default:desert_stone"}
|
||||
})
|
||||
|
||||
civilization.register_age_node({
|
||||
name = "Bronze",
|
||||
tiles = "default_bronze_block.png",
|
||||
nodes = {"default:bronze_ingot", "default:bronzeblock"}
|
||||
nodes = {"default:stone_with_copper", "default:bronze_ingot", "default:bronzeblock"}
|
||||
})
|
||||
|
||||
civilization.register_age_node({
|
||||
name = "Iron",
|
||||
tiles = "default_steel_block.png",
|
||||
nodes = {"default:steel_ingot", "default:iron_lump", "default:steelblock"}
|
||||
nodes = {"default:stone_with_iron", "default:steel_ingot", "default:iron_lump", "default:steelblock"}
|
||||
})
|
||||
|
||||
civilization.register_age_node({
|
||||
|
@ -36,6 +36,16 @@ civilization.register_age_node({
|
|||
tiles = "default_mese_block.png",
|
||||
nodes = {"default:mese", "default:mese_crystal", "default:mese_crystal_fragment"}
|
||||
})
|
||||
|
||||
civilization.register_mod_node({
|
||||
name = "Stair Crafter",
|
||||
mod = "stairs",
|
||||
recipe = {
|
||||
{'', '', ''},
|
||||
{'', '', ''}},
|
||||
tiles = "default_wood.png^stairs_crafter.png",
|
||||
})
|
||||
|
||||
--define smaller inventory abd 1x2 crafting grid
|
||||
civilization.set_formspec = function(player)
|
||||
player:set_inventory_formspec(
|
||||
|
|
|
@ -10,7 +10,7 @@ BY: bas080
|
|||
DESCRIPTION: Civilization minetest mod aims for collaborative gameplay
|
||||
VERSION: 0.5
|
||||
LICENCE: WTFPL
|
||||
FORUM: http://forum.minetest.net/viewtopic.php?id=4542
|
||||
FORUM: http://forum.minetest.net/viewtopic.php?id=5467
|
||||
|
||||
Changelog
|
||||
---------
|
||||
|
@ -25,6 +25,11 @@ Changelog
|
|||
* Carfting age nodes that only allow crafts of certain types of nodes belonging to that age
|
||||
* Includes a function which easily allows to add new ages
|
||||
|
||||
0.2
|
||||
* Only dirt and leaves can be dug by hand
|
||||
* Factory Formspec 2.0
|
||||
* Give new player one tree node
|
||||
|
||||
0.1
|
||||
* Removes craft grid from inventory
|
||||
* Reduces inventory size to 9 slots
|
||||
|
|
|
@ -2,12 +2,12 @@ civilization.register_age_node = function(def)
|
|||
local node_name = "civilization:"..def.name
|
||||
--craft
|
||||
minetest.register_craft({
|
||||
output = node_name..' 1',
|
||||
recipe = {
|
||||
{def.nodes[1], '', def.nodes[1]},
|
||||
{'', '', ''},
|
||||
{def.nodes[1], '', def.nodes[1]},
|
||||
}
|
||||
output = node_name..' 1',
|
||||
recipe = {
|
||||
{def.nodes[1], '', def.nodes[1]},
|
||||
{'', '', ''},
|
||||
{def.nodes[1], '', def.nodes[1]},
|
||||
}
|
||||
})
|
||||
--node
|
||||
minetest.register_node(node_name,{
|
||||
|
@ -125,7 +125,6 @@ civilization.register_age_node = function(def)
|
|||
end
|
||||
crafted = minetest.get_craft_result({method = "normal", width = 3, items = tablelist})
|
||||
end
|
||||
|
||||
if crafted then
|
||||
inv:set_stack("dst", 1, crafted.item)
|
||||
else
|
||||
|
@ -137,23 +136,18 @@ civilization.register_age_node = function(def)
|
|||
local tablelist = inv:get_list("recipe")
|
||||
local crafted = nil
|
||||
local table_dec = nil
|
||||
|
||||
if tablelist then
|
||||
crafted,table_dec = minetest.get_craft_result({method = "normal", width = 3, items = tablelist})
|
||||
end
|
||||
|
||||
if table_dec then
|
||||
inv:set_list("recipe", table_dec.items)
|
||||
else
|
||||
inv:set_list("recipe", nil)
|
||||
end
|
||||
|
||||
local tablelist = inv:get_list("recipe")
|
||||
|
||||
if tablelist then
|
||||
crafted,table_dec = minetest.get_craft_result({method = "normal", width = 3, items = tablelist})
|
||||
end
|
||||
|
||||
if crafted then
|
||||
inv:set_stack("dst", 1, crafted.item)
|
||||
else
|
||||
|
|
|
@ -1,24 +1,22 @@
|
|||
--THIS API IS WIP
|
||||
--IT WILL ALLOW TO MAKE A CRAFTING NODE FOR A MOD
|
||||
--def
|
||||
--recipe
|
||||
--mod name
|
||||
--formspec
|
||||
--recipe
|
||||
--mod name
|
||||
--formspec
|
||||
|
||||
civilization.register_mod_node = function(def)
|
||||
local node_name = "civilization:"..def.mod
|
||||
--craft
|
||||
minetest.register_craft({
|
||||
output = 'bucket:bucket_empty 1',
|
||||
recipe = {
|
||||
{'default:steel_ingot', '', 'default:steel_ingot'},
|
||||
{'', 'default:steel_ingot', ''},
|
||||
}
|
||||
output = node_name..' 1',
|
||||
recipe = def.recipe,
|
||||
})
|
||||
--node
|
||||
minetest.register_node("civilization:"..def.name,{
|
||||
description = def.name.." Age",
|
||||
minetest.register_node(node_name,{
|
||||
description = def.name,
|
||||
drawtype="normal",
|
||||
tiles={def.tiles.."^civilization_factory.png"},
|
||||
tiles={def.tiles},
|
||||
groups={cracky=1},
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
|
@ -28,7 +26,7 @@ civilization.register_mod_node = function(def)
|
|||
"list[current_player;main;1,0;3,3;]"..
|
||||
"list[current_name;recipe;4.5,0;3,3;]"..
|
||||
"list[current_name;dst;7.5,1;1,1;]")
|
||||
meta:set_string("infotext", def.name.." Craft")
|
||||
meta:set_string("infotext", def.name)
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("recipe",3*3)
|
||||
inv:set_size("dst",1)
|
||||
|
@ -66,19 +64,16 @@ civilization.register_mod_node = function(def)
|
|||
local recipe
|
||||
print("inventory mode")
|
||||
if tablelist then
|
||||
for _,item in ipairs(tablelist) do
|
||||
local name = item:get_name()
|
||||
if string.find(dump(def.nodes), name) or string.find(dump(civilization.common_age_nodes), name) or name == "" then
|
||||
else
|
||||
inv:set_stack("dst", 1, nil)
|
||||
return
|
||||
end
|
||||
end
|
||||
crafted = minetest.get_craft_result({method = "normal", width = 3, items = tablelist})
|
||||
end
|
||||
|
||||
if crafted then
|
||||
inv:set_stack("dst", 1, crafted.item)
|
||||
if not string.find(dump(crafted.item:get_name()), def.mod..":") then
|
||||
inv:set_stack("dst", 1, nil)
|
||||
return
|
||||
else
|
||||
inv:set_stack("dst", 1, crafted.item)
|
||||
end
|
||||
else
|
||||
inv:set_stack("dst", 1, nil)
|
||||
end
|
||||
|
@ -93,19 +88,16 @@ civilization.register_mod_node = function(def)
|
|||
print("inventory put")
|
||||
|
||||
if tablelist then
|
||||
for _,item in ipairs(tablelist) do
|
||||
local name = item:get_name()
|
||||
if string.find(dump(def.nodes), name) or string.find(dump(civilization.common_age_nodes), name) or name == "" then
|
||||
else
|
||||
inv:set_stack("dst", 1, nil)
|
||||
return
|
||||
end
|
||||
end
|
||||
crafted = minetest.get_craft_result({method = "normal", width = 3, items = tablelist})
|
||||
end
|
||||
|
||||
if crafted then
|
||||
inv:set_stack("dst", 1, crafted.item)
|
||||
if not string.find(dump(crafted.item:get_name()), def.mod..":") then
|
||||
inv:set_stack("dst", 1, nil)
|
||||
return
|
||||
else
|
||||
inv:set_stack("dst", 1, crafted.item)
|
||||
end
|
||||
else
|
||||
inv:set_stack("dst", 1, nil)
|
||||
end
|
||||
|
@ -120,19 +112,16 @@ civilization.register_mod_node = function(def)
|
|||
print("inventory take")
|
||||
|
||||
if tablelist then
|
||||
for _,item in ipairs(tablelist) do
|
||||
local name = item:get_name()
|
||||
if string.find(dump(def.nodes), name) or string.find(dump(civilization.common_age_nodes), name) or name == "" then
|
||||
else
|
||||
inv:set_stack("dst", 1, nil)
|
||||
return
|
||||
end
|
||||
end
|
||||
crafted = minetest.get_craft_result({method = "normal", width = 3, items = tablelist})
|
||||
end
|
||||
|
||||
if crafted then
|
||||
inv:set_stack("dst", 1, crafted.item)
|
||||
if not string.find(dump(crafted.item:get_name()), def.mod..":") then
|
||||
inv:set_stack("dst", 1, nil)
|
||||
return
|
||||
else
|
||||
inv:set_stack("dst", 1, crafted.item)
|
||||
end
|
||||
else
|
||||
inv:set_stack("dst", 1, nil)
|
||||
end
|
||||
|
@ -142,24 +131,27 @@ civilization.register_mod_node = function(def)
|
|||
local tablelist = inv:get_list("recipe")
|
||||
local crafted = nil
|
||||
local table_dec = nil
|
||||
|
||||
if tablelist then
|
||||
crafted,table_dec = minetest.get_craft_result({method = "normal", width = 3, items = tablelist})
|
||||
end
|
||||
|
||||
if table_dec then
|
||||
inv:set_list("recipe", table_dec.items)
|
||||
else
|
||||
inv:set_list("recipe", nil)
|
||||
end
|
||||
|
||||
local tablelist = inv:get_list("recipe")
|
||||
|
||||
if tablelist then
|
||||
crafted,table_dec = minetest.get_craft_result({method = "normal", width = 3, items = tablelist})
|
||||
end
|
||||
|
||||
if crafted then
|
||||
|
||||
if not string.find(dump(crafted.item:get_name()), def.mod..":") then
|
||||
inv:set_stack("dst", 1, nil)
|
||||
return
|
||||
else
|
||||
inv:set_stack("dst", 1, crafted.item)
|
||||
end
|
||||
|
||||
inv:set_stack("dst", 1, crafted.item)
|
||||
else
|
||||
inv:set_stack("dst", 1, nil)
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 571 B |
Loading…
Reference in New Issue