alpha 3: wiki
|
@ -30,6 +30,7 @@ globals = {
|
|||
"treez",
|
||||
"wield3d",
|
||||
"mapgenz",
|
||||
"wikiz"
|
||||
}
|
||||
|
||||
read_globals = {
|
||||
|
|
|
@ -263,7 +263,7 @@ function bedz.register_bed(name, def)
|
|||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
stack_max = 1,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, bed = 1},
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, bed = 1, deco = 1},
|
||||
sounds = sound.wood(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
|
|
|
@ -11,7 +11,7 @@ bedz.register_bed("simple_bed", {
|
|||
},
|
||||
inventory_image = "bedz_simple_bed_inv.png",
|
||||
recipe = {
|
||||
{"group:wood_planks", "",
|
||||
{"group:planks", "",
|
||||
"group:stick"},{"group:stick", "", ""},
|
||||
{"", "", ""},
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ minetest.register_tool("bucketz:bucket", {
|
|||
inventory_image = "bucketz.png",
|
||||
stack_max = 1,
|
||||
liquids_pointable = true,
|
||||
groups = { disable_repair = 1 },
|
||||
groups = {bucket = 1, disable_repair = 1, vessel = 1},
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
-- Must be pointing to node
|
||||
if pointed_thing.type ~= "node" then
|
||||
|
@ -28,3 +28,13 @@ minetest.register_tool("bucketz:bucket", {
|
|||
end
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "bucketz:bucket",
|
||||
type = "shaped",
|
||||
recipe = {
|
||||
{"", "",
|
||||
""},{"nodez:iron_ingot", "", ""},
|
||||
{"", "", ""},
|
||||
}
|
||||
})
|
||||
|
|
|
@ -5,11 +5,12 @@ local S = minetest.get_translator(modname)
|
|||
|
||||
minetest.register_node("chestz:chest", {
|
||||
description = S("Chest"),
|
||||
tiles ={"chestz_chest.png^[sheet:2x2:0,0", "chestz_chest.png^[sheet:2x2:0,0",
|
||||
"chestz_chest.png^[sheet:2x2:1,0", "chestz_chest.png^[sheet:2x2:1,0",
|
||||
"chestz_chest.png^[sheet:2x2:1,0", "chestz_chest.png^[sheet:2x2:0,1"},
|
||||
inventory_image = "chestz_chest_inv.png",
|
||||
tiles ={"chestz_chest_top.png", "chestz_chest_top.png",
|
||||
"chestz_chest_side.png", "chestz_chest_side.png",
|
||||
"chestz_chest_side.png", "chestz_chest_front.png"},
|
||||
paramtype2 = "facedir",
|
||||
groups = {dig_immediate=2,choppy=3},
|
||||
groups = {dig_immediate=2, choppy=3, vessel=1},
|
||||
is_ground_content = false,
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
|
|
Before Width: | Height: | Size: 751 B |
After Width: | Height: | Size: 666 B |
After Width: | Height: | Size: 692 B |
After Width: | Height: | Size: 577 B |
After Width: | Height: | Size: 639 B |
After Width: | Height: | Size: 624 B |
|
@ -110,6 +110,8 @@ function decoz.register_chair(name, def)
|
|||
|
||||
minetest.register_node(chair_name, {
|
||||
description = S(def.description),
|
||||
inventory_image = def.inventory_image or "",
|
||||
wield_image = def.wield_image or inventory_image,
|
||||
tiles = def.tiles,
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
|
@ -176,6 +178,8 @@ function decoz.register_table(name, def)
|
|||
|
||||
minetest.register_node(table_name, {
|
||||
description = S(def.description),
|
||||
inventory_image = def.inventory_image or "",
|
||||
wield_image = def.wield_image or inventory_image,
|
||||
tiles = def.tiles,
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
decoz.register_chair("simple_chair", {
|
||||
description = "Simple Chair",
|
||||
inventory_image = "decoz_simple_chair_inv.png",
|
||||
tiles = {
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
decoz.register_table("simple_table", {
|
||||
description = "Simple Table",
|
||||
inventory_image = "decoz_simple_table_inv.png",
|
||||
tiles = {
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
|
@ -19,7 +20,7 @@ decoz.register_table("simple_table", {
|
|||
{-0.4375, -0.5, -0.4375, 0.4375, 0.5, 0.4375},
|
||||
},
|
||||
recipe = {
|
||||
{"group:wood_planks","group:wood_planks",
|
||||
{"group:planks","group:planks",
|
||||
"group:stick"},{"group:stick", "", ""},
|
||||
{"", "", ""},
|
||||
}
|
||||
|
|
After Width: | Height: | Size: 565 B |
After Width: | Height: | Size: 535 B |
|
@ -141,7 +141,7 @@ function doorz.register_door(name, def)
|
|||
tiles = def.tiles,
|
||||
use_texture_alpha = "clip",
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, door = 1},
|
||||
groups = {choppy = 2, door = 1, deco =1},
|
||||
stack_max = 1,
|
||||
buildable_to = false,
|
||||
sounds = sound.wood(),
|
||||
|
|
|
@ -81,7 +81,9 @@ farmz.hoe_use = function(itemstack, user, pointed_thing)
|
|||
end
|
||||
|
||||
function farmz.register_hoe(name, def)
|
||||
|
||||
local hoe_name = def.modname..":"..name
|
||||
|
||||
minetest.register_tool(hoe_name, {
|
||||
description = def.description,
|
||||
inventory_image = def.inventory_image,
|
||||
|
@ -89,9 +91,17 @@ function farmz.register_hoe(name, def)
|
|||
on_use = function(itemstack, user, pointed_thing)
|
||||
return farmz.hoe_use(itemstack, user, pointed_thing)
|
||||
end,
|
||||
groups = def.groups,
|
||||
groups = {hoe = 1, tool = 4},
|
||||
sound = {breaks = "default_tool_breaks"},
|
||||
})
|
||||
|
||||
if def.recipe then
|
||||
minetest.register_craft({
|
||||
output = hoe_name,
|
||||
type = "shaped",
|
||||
recipe = def.recipe
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
function farmz.register_seed(modname, name, description, product_name, grow_time, sprout)
|
||||
|
@ -259,7 +269,7 @@ function farmz.register_plant(name, def)
|
|||
minetest.register_craftitem(craft_name, {
|
||||
description = S(def.craft.description),
|
||||
inventory_image = def.modname.."_"..def.craft.name..".png",
|
||||
groups = {flour = 1},
|
||||
groups = def.craft.groups,
|
||||
})
|
||||
|
||||
local recipe = {}
|
||||
|
|
|
@ -3,5 +3,10 @@ local S = ...
|
|||
farmz.register_hoe("steel_Hoe" ,{
|
||||
modname = "farmz",
|
||||
description = S("Steel Hoe"),
|
||||
inventory_image = "farmz_hoe_steel.png"
|
||||
inventory_image = "farmz_hoe_steel.png",
|
||||
recipe = {
|
||||
{"", "nodez:iron_ingot",
|
||||
""},{"treez:stick", "", ""},
|
||||
{"", "", ""},
|
||||
}
|
||||
})
|
||||
|
|
|
@ -10,6 +10,7 @@ farmz.register_plant("wheat", {
|
|||
description = "Flour",
|
||||
input_amount = 4,
|
||||
output_amount = 1,
|
||||
groups = {food = 1}
|
||||
},
|
||||
only_register_sprout = false,
|
||||
})
|
||||
|
|
|
@ -354,7 +354,7 @@ minetest.register_node("furnz:furnace", {
|
|||
"furnz_furnace_side.png", "furnz_furnace_front.png"
|
||||
},
|
||||
paramtype2 = "facedir",
|
||||
groups = {cracky=2},
|
||||
groups = {cracky=2, deco=1, tool=1},
|
||||
legacy_facedir_simple = true,
|
||||
is_ground_content = false,
|
||||
sounds = sound.stone(),
|
||||
|
|
|
@ -2,6 +2,7 @@ helper = {}
|
|||
helper.vector = {}
|
||||
helper.nodebox = {}
|
||||
helper.table = {}
|
||||
helper.string = {}
|
||||
|
||||
function helper.in_group(pos, group)
|
||||
local node = minetest.get_node_or_nil(pos)
|
||||
|
@ -154,3 +155,17 @@ function helper.table_deepcopy(t) -- deep-copy a table
|
|||
return target
|
||||
end
|
||||
|
||||
--Strings
|
||||
|
||||
function helper.string.split(inputstr, sep)
|
||||
if sep == nil then
|
||||
sep = "%s"
|
||||
end
|
||||
local t = {}
|
||||
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
|
||||
table.insert(t, str)
|
||||
end
|
||||
return t
|
||||
end
|
||||
|
||||
|
||||
|
|
After Width: | Height: | Size: 671 B |
After Width: | Height: | Size: 552 B |
|
@ -59,12 +59,13 @@ minetest.register_node("nodez:dirt_with_snow", {
|
|||
minetest.register_node("nodez:clay", {
|
||||
description = S("Clay"),
|
||||
tiles ={"nodez_clay.png"},
|
||||
groups = {crumbly=2},
|
||||
groups = {crumbly=2, pottery =1},
|
||||
sounds = sound.dirt(),
|
||||
})
|
||||
|
||||
minetest.register_craftitem("nodez:clay_lump", {
|
||||
description = S("Clay Lump"),
|
||||
groups = {pottery =1},
|
||||
inventory_image = "nodez_clay_lump.png"
|
||||
})
|
||||
|
||||
|
@ -93,7 +94,8 @@ minetest.register_craft({
|
|||
|
||||
minetest.register_craftitem("nodez:clay_brick", {
|
||||
description = S("Clay Brick"),
|
||||
inventory_image = "nodez_clay_brick.png"
|
||||
inventory_image = "nodez_clay_brick.png",
|
||||
groups = {pottery=1, build=1},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
|
@ -106,8 +108,8 @@ minetest.register_craft({
|
|||
minetest.register_node("nodez:clay_bricks", {
|
||||
description = S("Clay Bricks"),
|
||||
tiles ={"nodez_clay_bricks.png"},
|
||||
groups = {crumbly=2},
|
||||
sounds = sound.dirt(),
|
||||
groups = {cracky = 3, pottery =1, build=1},
|
||||
sounds = sound.stone(),
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
|
@ -124,7 +126,7 @@ minetest.register_craft({
|
|||
minetest.register_node("nodez:adobe", {
|
||||
description = S("Adobe"),
|
||||
tiles ={"nodez_adobe.png"},
|
||||
groups = {crumbly=2},
|
||||
groups = {crumbly=2, pottery=1, build=1},
|
||||
sounds = sound.dirt(),
|
||||
})
|
||||
|
||||
|
|
|
@ -3,12 +3,13 @@ local S = ...
|
|||
minetest.register_node("nodez:ruby_ore", {
|
||||
description = S("Ruby Ore"),
|
||||
tiles = {"nodez_stone.png^nodez_ruby_ore.png"},
|
||||
groups = {cracky = 1},
|
||||
groups = {cracky=1, ore=1},
|
||||
drop = "nodez:ruby",
|
||||
sounds = sound:stone(),
|
||||
})
|
||||
|
||||
minetest.register_craftitem("nodez:ruby", {
|
||||
description = S("Ruby"),
|
||||
groups = {gem=1, ore=1},
|
||||
inventory_image = "nodez_ruby.png",
|
||||
})
|
||||
|
|
|
@ -14,6 +14,7 @@ Dirt with Snow=Tierra con nieve
|
|||
Flowing Water=Corriente de agua
|
||||
Flowing River Water=Corriente de agua de río
|
||||
Flowing Lava=Corriente de lava
|
||||
Glass=Vidrio
|
||||
Gravel=Gravilla
|
||||
Ice=Hielo
|
||||
Iron Ingot=Lingote de hierro
|
||||
|
|
|
@ -3,7 +3,7 @@ local S = ...
|
|||
minetest.register_node("nodez:mese_ore", {
|
||||
description = S("Mese Ore"),
|
||||
tiles = {"nodez_stone.png^nodez_mese_ore.png"},
|
||||
groups = {cracky = 1},
|
||||
groups = {cracky=1, ore=1},
|
||||
drop = "nodez:mese_crystal 3",
|
||||
sounds = sound:stone(),
|
||||
})
|
||||
|
@ -11,4 +11,5 @@ minetest.register_node("nodez:mese_ore", {
|
|||
minetest.register_craftitem("nodez:mese_crystal", {
|
||||
description = S("Mese Crystal"),
|
||||
inventory_image = "nodez_mese_crystal.png",
|
||||
groups = {gem=1, ore=1},
|
||||
})
|
||||
|
|
|
@ -5,7 +5,7 @@ local S = ...
|
|||
minetest.register_node("nodez:coal_ore", {
|
||||
description = S("Coal Ore"),
|
||||
tiles = {"nodez_stone.png^nodez_coal_ore.png"},
|
||||
groups = {cracky = 3},
|
||||
groups = {cracky=3, ore=1},
|
||||
drop = "nodez:coal_lump 4",
|
||||
sounds = sound.stone(),
|
||||
})
|
||||
|
@ -13,7 +13,7 @@ minetest.register_node("nodez:coal_ore", {
|
|||
minetest.register_craftitem("nodez:coal_lump", {
|
||||
description = S("Coal Lump"),
|
||||
inventory_image = "nodez_coal_lump.png",
|
||||
groups = {coal = 1, flammable = 1}
|
||||
groups = {coal=1, flammable=1, ore=1}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
|
@ -27,13 +27,14 @@ minetest.register_craft({
|
|||
minetest.register_node("nodez:iron_ore", {
|
||||
description = S("Iron Ore"),
|
||||
tiles = {"nodez_stone.png^nodez_iron_ore.png"},
|
||||
groups = {cracky = 2},
|
||||
groups = {cracky=2, ore=1},
|
||||
drop = "nodez:iron_lump 3",
|
||||
sounds = sound.stone(),
|
||||
})
|
||||
|
||||
minetest.register_craftitem("nodez:iron_lump", {
|
||||
description = S("Iron Lump"),
|
||||
groups = {ore=1},
|
||||
inventory_image = "nodez_iron_lump.png"
|
||||
})
|
||||
|
||||
|
|
|
@ -3,21 +3,21 @@ local S = ...
|
|||
minetest.register_node("nodez:sand", {
|
||||
description = S("Sand"),
|
||||
tiles ={"nodez_sand.png"},
|
||||
groups = {crumbly=3, sand=1},
|
||||
groups = {crumbly=3, sand=1, build=1},
|
||||
sounds = sound.sand()
|
||||
})
|
||||
|
||||
minetest.register_node("nodez:desert_sand", {
|
||||
description = S("Desert Sand"),
|
||||
tiles ={"nodez_desert_sand.png"},
|
||||
groups = {crumbly=3, sand=1},
|
||||
groups = {crumbly=3, sand=1, build=1},
|
||||
sounds = sound.sand()
|
||||
})
|
||||
|
||||
minetest.register_node("nodez:sandstone", {
|
||||
description = S("Sandstone"),
|
||||
tiles ={"nodez_sandstone.png"},
|
||||
groups = {crumbly=3, sandstone=1},
|
||||
groups = {crumbly=3, sandstone=1, stone =1, build=1},
|
||||
sounds = sound.stone()
|
||||
})
|
||||
|
||||
|
@ -33,7 +33,7 @@ minetest.register_node("nodez:glass", {
|
|||
paramtype2 = "glasslikeliquidlevel",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
groups = {cracky= 3, glass= 1},
|
||||
groups = {cracky=3, glass=1, deco=1, build=1},
|
||||
oddly_breakable_by_hand = 3,
|
||||
sounds = sound.glass()
|
||||
})
|
||||
|
|
|
@ -3,7 +3,7 @@ local S = ...
|
|||
minetest.register_node("nodez:stone", {
|
||||
description = S("Stone"),
|
||||
tiles = {"nodez_stone.png"},
|
||||
groups = {cracky=3, stone=1},
|
||||
groups = {cracky=3, stone=1, build=1},
|
||||
sounds = sound.stone(),
|
||||
})
|
||||
|
||||
|
@ -11,7 +11,7 @@ minetest.register_node("nodez:cobble", {
|
|||
description = S("Cobblestone"),
|
||||
tiles ={"nodez_cobble.png"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky=3, stone=1},
|
||||
groups = {cracky=3, stone=1,build=1},
|
||||
sounds = sound.stone(),
|
||||
})
|
||||
|
||||
|
@ -19,14 +19,14 @@ minetest.register_node("nodez:mossycobble", {
|
|||
description = S("Mossy Cobblestone"),
|
||||
tiles ={"nodez_cobble.png^(nodez_moss.png^[makealpha:50,50,50)"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky=3, stone=1},
|
||||
groups = {cracky=3, stone=1, build=1},
|
||||
sounds = sound.stone(),
|
||||
})
|
||||
|
||||
minetest.register_node("nodez:gravel", {
|
||||
description = S("Gravel"),
|
||||
tiles ={"nodez_gravel.png"},
|
||||
groups = {crumbly=2},
|
||||
groups = {crumbly=2, build=1},
|
||||
sounds = sound.gravel(),
|
||||
drop = {
|
||||
max_items = 1,
|
||||
|
@ -46,5 +46,6 @@ minetest.register_node("nodez:gravel", {
|
|||
|
||||
minetest.register_craftitem("nodez:silex", {
|
||||
description = S("Silex"),
|
||||
groups = {silex=1, ore=1},
|
||||
inventory_image = "nodez_silex.png"
|
||||
})
|
||||
|
|
|
@ -359,6 +359,7 @@ end)
|
|||
-- Sign nodes
|
||||
minetest.register_node("signs:sign", {
|
||||
description = S"Sign",
|
||||
inventory_image = "signs_wood_inv.png",
|
||||
tiles = {"signs_wood.png"},
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
|
@ -403,7 +404,7 @@ minetest.register_node("signs:wall_sign", {
|
|||
minetest.register_craft({
|
||||
output = "signs:sign 3",
|
||||
recipe = {
|
||||
{"group:wood_planks", "",
|
||||
{"group:planks", "",
|
||||
"group:stick"},{"", "", ""},
|
||||
{"", "", ""},
|
||||
}
|
||||
|
|
After Width: | Height: | Size: 567 B |
|
@ -5,8 +5,10 @@ function stairz.register_stair(subname, recipeitem, groups, images, description)
|
|||
local stairs_name = modname..":stair_" .. subname
|
||||
|
||||
groups.stair = 1
|
||||
groups.build = 1
|
||||
|
||||
minetest.register_node(stairs_name, {
|
||||
|
||||
description = S(description),
|
||||
drawtype = "nodebox",
|
||||
tiles = images,
|
||||
|
@ -23,7 +25,7 @@ function stairz.register_stair(subname, recipeitem, groups, images, description)
|
|||
},
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = stairs_name,
|
||||
output = stairs_name.." 6",
|
||||
type = "shaped",
|
||||
recipe = {
|
||||
{recipeitem, "",
|
||||
|
@ -39,6 +41,7 @@ function stairz.register_slab(subname, recipeitem, groups, images, description)
|
|||
local slab_name = modname..":slab_" .. subname
|
||||
|
||||
groups.slab = 1
|
||||
groups.build = 1
|
||||
|
||||
minetest.register_node(slab_name, {
|
||||
description = S(description),
|
||||
|
@ -57,7 +60,7 @@ function stairz.register_slab(subname, recipeitem, groups, images, description)
|
|||
},
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = slab_name,
|
||||
output = slab_name.." 4",
|
||||
type = "shaped",
|
||||
recipe = {
|
||||
{"", "",
|
||||
|
|
|
@ -4,21 +4,38 @@ S = ...
|
|||
-- Axes (dig choppy)
|
||||
--
|
||||
|
||||
|
||||
--Stone --also can pick
|
||||
minetest.register_tool("toolz:axe_stone", {
|
||||
description = S("Stone Axe"),
|
||||
inventory_image = "toolz_stoneaxe.png",
|
||||
groups = {axe = 1, weapon=1, tool = 2},
|
||||
tool_capabilities = {
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
choppy={times={[2]=1.00, [3]=0.60}, uses=60, maxlevel=0},
|
||||
cracky={times={[1]=8.00, [2]=4, [3]=2}, uses=20, maxlevel=0},
|
||||
crumbly={times={[1]=4.00, [2]=2, [3]=1}, uses=30, maxlevel=0}
|
||||
},
|
||||
damage_groups = {fleshy=3},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "toolz:axe_stone",
|
||||
type = "shaped",
|
||||
recipe = {
|
||||
{"nodez:silex", "nodez:silex",
|
||||
""},{"treez:stick", "", ""},
|
||||
{"", "", ""},
|
||||
}
|
||||
})
|
||||
|
||||
--Steel --more versatile
|
||||
minetest.register_tool("toolz:axe_steel", {
|
||||
description = S("Iron Axe"),
|
||||
inventory_image = "toolz_ironaxe.png",
|
||||
groups = {axe = 2, weapon=3, tool = 2},
|
||||
tool_capabilities = {
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
|
@ -27,3 +44,13 @@ minetest.register_tool("toolz:axe_steel", {
|
|||
damage_groups = {fleshy=5},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "toolz:axe_steel",
|
||||
type = "shaped",
|
||||
recipe = {
|
||||
{"nodez:iron_ingot", "nodez:iron_ingot",
|
||||
""},{"treez:stick", "", ""},
|
||||
{"", "", ""},
|
||||
}
|
||||
})
|
||||
|
|
|
@ -4,6 +4,7 @@ S = ...
|
|||
minetest.register_tool("toolz:pick_mese", {
|
||||
description = S("Mese Pickaxe"),
|
||||
inventory_image = "toolz_mesepick.png",
|
||||
groups = {pickaxe = 2, tool = 1},
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=3,
|
||||
|
@ -18,6 +19,16 @@ minetest.register_tool("toolz:pick_mese", {
|
|||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "toolz:pick_mese",
|
||||
type = "shaped",
|
||||
recipe = {
|
||||
{"nodez:mese_crystal", "nodez:mese_crystal",
|
||||
"nodez:mese_crystal"},{"", "", ""},
|
||||
{"", "", ""},
|
||||
}
|
||||
})
|
||||
|
||||
--
|
||||
-- Pickaxes: Dig cracky
|
||||
--
|
||||
|
@ -25,6 +36,7 @@ minetest.register_tool("toolz:pick_mese", {
|
|||
minetest.register_tool("toolz:pick_steel", {
|
||||
description = S("Iron Pickaxe"),
|
||||
inventory_image = "toolz_ironpick.png",
|
||||
groups = {pickaxe = 1, tool = 4},
|
||||
tool_capabilities = {
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
|
@ -33,3 +45,13 @@ minetest.register_tool("toolz:pick_steel", {
|
|||
damage_groups = {fleshy=2},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "toolz:pick_steel",
|
||||
type = "shaped",
|
||||
recipe = {
|
||||
{"nodez:iron_ingot", "nodez:iron_ingot",
|
||||
"treez:stick"},{"", "", ""},
|
||||
{"", "", ""},
|
||||
}
|
||||
})
|
||||
|
|
|
@ -7,6 +7,7 @@ S = ...
|
|||
minetest.register_tool("toolz:shovel_steel", {
|
||||
description = S("Iron Shovel"),
|
||||
inventory_image = "toolz_ironshovel.png",
|
||||
groups = {shovel = 1, tool = 3},
|
||||
tool_capabilities = {
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
|
@ -15,6 +16,14 @@ minetest.register_tool("toolz:shovel_steel", {
|
|||
},
|
||||
})
|
||||
|
||||
|
||||
minetest.register_craft({
|
||||
output = "toolz:shovel_steel",
|
||||
type = "shaped",
|
||||
recipe = {
|
||||
{"nodez:iron_ingot", "",
|
||||
"treez:stick"},{"", "", ""},
|
||||
{"", "", ""},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ S = ...
|
|||
minetest.register_tool("toolz:sword_steel", {
|
||||
description = S("Iron Sword"),
|
||||
inventory_image = "toolz_ironsword.png",
|
||||
groups = {sword = 1, weapon = 4},
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=1,
|
||||
|
@ -14,6 +15,16 @@ minetest.register_tool("toolz:sword_steel", {
|
|||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "toolz:sword_steel",
|
||||
type = "shaped",
|
||||
recipe = {
|
||||
{"", "nodez:iron_ingot",
|
||||
"nodez:iron_ingot"},{"", "", ""},
|
||||
{"", "", ""},
|
||||
}
|
||||
})
|
||||
|
||||
-- Fire/Ice sword: Deal damage to non-fleshy damage groups
|
||||
minetest.register_tool("toolz:sword_fire", {
|
||||
description = S("Fire Sword"),
|
||||
|
@ -28,6 +39,7 @@ minetest.register_tool("toolz:sword_fire", {
|
|||
minetest.register_tool("toolz:sword_ice", {
|
||||
description = S("Ice Sword"),
|
||||
inventory_image = "toolz_icesword.png",
|
||||
groups = {sword = 1, weapon = 2},
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=0,
|
||||
|
@ -41,9 +53,20 @@ minetest.register_tool("toolz:sword_ice", {
|
|||
minetest.register_tool("toolz:dagger_steel", {
|
||||
description = S("Iron Dagger"),
|
||||
inventory_image = "toolz_irondagger.png",
|
||||
groups = {dagger = 1, weapon = 2},
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.5,
|
||||
max_drop_level=0,
|
||||
damage_groups = {fleshy=2},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "toolz:dagger_steel",
|
||||
type = "shaped",
|
||||
recipe = {
|
||||
{"", "",
|
||||
"nodez:iron_ingot"},{"", "", ""},
|
||||
{"", "", ""},
|
||||
}
|
||||
})
|
||||
|
|
|
@ -43,7 +43,7 @@ minetest.register_node("torchz:torch", {
|
|||
walkable = false,
|
||||
liquids_pointable = false,
|
||||
light_source = 12,
|
||||
groups = {choppy=2, dig_immediate=3, flammable=1, attached_node=1, torch=1},
|
||||
groups = {choppy=2, dig_immediate=3, flammable=1, attached_node=1, torch=1, deco=1, tool=1},
|
||||
drop = "torchz:torch",
|
||||
selection_box = {
|
||||
type = "wallmounted",
|
||||
|
|
|
@ -29,7 +29,7 @@ function treez.register_tree(name, def)
|
|||
fixed = def.fruit.selection_box
|
||||
},
|
||||
groups = {fleshy = 3, dig_immediate = 3, flammable = 2,
|
||||
leafdecay = 3, leafdecay_drop = 1},
|
||||
leafdecay = 3, leafdecay_drop = 1, food=1},
|
||||
sounds = sound.leaves(),
|
||||
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
|
@ -73,8 +73,13 @@ function treez.register_tree(name, def)
|
|||
end,
|
||||
})
|
||||
|
||||
local output = craft_fruit_name
|
||||
if def.fruit.craft.output_no then
|
||||
output = output .. " ".. tostring(def.fruit.craft.output_no)
|
||||
end
|
||||
|
||||
minetest.register_craft({
|
||||
output = craft_fruit_name,
|
||||
output = output,
|
||||
type = "shapeless",
|
||||
recipe = {fruit_name},
|
||||
})
|
||||
|
@ -118,7 +123,10 @@ function treez.register_tree(name, def)
|
|||
tiles = {
|
||||
"treez_"..name.."_trunk_top.png",
|
||||
"treez_"..name.."_trunk_top.png",
|
||||
"treez_"..name.."_trunk.png"
|
||||
"treez_"..name.."_trunk.png",
|
||||
"treez_"..name.."_trunk.png",
|
||||
"treez_"..name.."_trunk.png",
|
||||
"treez_"..name.."_trunk.png",
|
||||
},
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
||||
paramtype2 = "facedir",
|
||||
|
@ -134,7 +142,7 @@ function treez.register_tree(name, def)
|
|||
paramtype2 = "facedir",
|
||||
place_param2 = 0,
|
||||
is_ground_content = false,
|
||||
groups = {wood = 1, wood_planks = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||
groups = {wood = 1, planks = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3, build=1},
|
||||
sounds = sound.wood(),
|
||||
})
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ treez.register_tree("cherry_tree", {
|
|||
}
|
||||
})
|
||||
|
||||
--Oak Tree
|
||||
--Chestnut Tree
|
||||
treez.register_tree("chestnut_tree", {
|
||||
description = "Chestnut Tree",
|
||||
fruit = {
|
||||
|
@ -62,7 +62,8 @@ treez.register_tree("chestnut_tree", {
|
|||
name= "chestnut",
|
||||
description = "Chestnut",
|
||||
hp = 2,
|
||||
hunger = 3
|
||||
hunger = 3,
|
||||
output_no = 3,
|
||||
}
|
||||
},
|
||||
deco = {
|
||||
|
|
|
@ -0,0 +1,276 @@
|
|||
wikiz = {}
|
||||
|
||||
local modname = minetest.get_current_modname()
|
||||
local S = minetest.get_translator(modname)
|
||||
|
||||
local craft_items = minetest.registered_items
|
||||
|
||||
local function render_crafts(crafts, page_no)
|
||||
|
||||
local render = ""
|
||||
local row = 1
|
||||
local col = 0
|
||||
|
||||
--Pagination
|
||||
local items_count = #crafts
|
||||
local items_per_page = 24
|
||||
local total_pages = math.floor((items_count + items_per_page - 1) / items_per_page)
|
||||
local item_start = (page_no * items_per_page) - (items_per_page - 1)
|
||||
local item_end = math.min(item_start + items_per_page - 1, items_count)
|
||||
|
||||
--local total_crafts = #crafts
|
||||
for i = item_start, item_end do
|
||||
local craft = crafts[i]
|
||||
render = render .. "item_image_button["..tostring(col)..","..tostring(row)..";1,1;"..craft.name
|
||||
..";"..craft.name..";]"
|
||||
col = col + 1
|
||||
if col == 8 then
|
||||
col = 0
|
||||
row = row + 1
|
||||
end
|
||||
end
|
||||
|
||||
--NavPag
|
||||
if total_pages > 1 then
|
||||
if page_no > 1 then
|
||||
render = render .."button[2,4;1,1;btn_previous_craft;<<]"
|
||||
end
|
||||
render = render .."label[3.25,4.25;"..tostring(page_no).." / "..tostring(total_pages).."]"
|
||||
if page_no < total_pages then
|
||||
render = render .."button[4,4;1,1;btn_next_craft;>>]"
|
||||
end
|
||||
end
|
||||
return render
|
||||
end
|
||||
|
||||
local function create_inv_cube(tiles)
|
||||
local inv_cube = "[inventorycube"
|
||||
local tile_top, tile_left, tile_right
|
||||
tile_top = tiles[1]
|
||||
if tiles[3] then
|
||||
tile_right = tiles[3]
|
||||
else
|
||||
tile_right = tile_top
|
||||
end
|
||||
if tiles[6] then
|
||||
tile_left = tiles[6]
|
||||
else
|
||||
tile_left = tile_top
|
||||
end
|
||||
inv_cube = inv_cube.."{"..tile_top.."{"..tile_left.."{"..tile_right
|
||||
return inv_cube
|
||||
end
|
||||
|
||||
local function render_recipes(item_name, recipe_no)
|
||||
local render = ""
|
||||
local row = 0
|
||||
local col = 0
|
||||
local row_offset = 6
|
||||
local col_offset = 3
|
||||
local recipes = minetest.get_all_craft_recipes(item_name)
|
||||
if recipes then
|
||||
local recipe = recipes[recipe_no]
|
||||
local items = recipe.items
|
||||
local label_row_offset = -0.5
|
||||
|
||||
--Type of recipe, "normal, "cooking" or fuel
|
||||
local type = recipe.type
|
||||
local type_img
|
||||
if type == "normal" then
|
||||
type_img = "hand.png"
|
||||
elseif type == "cooking" then
|
||||
type_img = "furnz_furnace_front_active.png"
|
||||
else --fuel
|
||||
type_img = ""
|
||||
end
|
||||
render = render .."image["..tostring(col+col_offset-2)..","..tostring(row+row_offset)..";1,1;"
|
||||
..type_img.."]"
|
||||
|
||||
--Width; 0=shapeless, 3=shaped
|
||||
local width = recipe.width
|
||||
local width_str
|
||||
if type == "cooking" then
|
||||
width_str = "cooking"
|
||||
elseif width == 0 then
|
||||
width_str = "unordered"
|
||||
elseif width == 3 then
|
||||
width_str = "ordered"
|
||||
else
|
||||
width_str = "unordered"
|
||||
end
|
||||
render = render .."label["..tostring(col+col_offset-2)..","..tostring(row+row_offset+1)
|
||||
..";"..S(width_str).."]"
|
||||
|
||||
--Output
|
||||
local output = helper.string.split(recipe.output)
|
||||
local output_no = output[2] or 1
|
||||
render = render
|
||||
.."image["..tostring(col+col_offset+2)..","..tostring(row+row_offset+0.5)..";1,1;right_arrow.png]"
|
||||
local output_img
|
||||
local itemtype = craft_items[item_name].type
|
||||
local drawtype = craft_items[item_name].drawtype
|
||||
if (itemtype == "node") and (drawtype=="normal") then
|
||||
output_img = create_inv_cube(craft_items[item_name].tiles)
|
||||
else
|
||||
output_img = craft_items[item_name].inventory_image
|
||||
end
|
||||
if not(output_img == "") then
|
||||
render = render .."image["..tostring(col+col_offset+3)..","..tostring(row+row_offset+0.5)..";1,1;"..output_img
|
||||
.."]"
|
||||
else
|
||||
render = render .."label["..tostring(col+col_offset+3)..","..tostring(row+row_offset+0.75)..";"..item_name
|
||||
.."]"
|
||||
end
|
||||
if output_no then
|
||||
render = render .."label["..tostring(col+col_offset+3+0.25)..","..tostring(row+row_offset+0.5+1)
|
||||
..";"..tostring(output_no).."]"
|
||||
end
|
||||
|
||||
--Recipe Items
|
||||
for i= 1, 4 do
|
||||
local item = items[i]
|
||||
local element_render, prefix, name
|
||||
if not item then
|
||||
prefix = "empty"
|
||||
else
|
||||
prefix = string.sub(item, 1, 6)
|
||||
name = string.sub(item, 7, string.len(item))
|
||||
end
|
||||
if prefix == "empty" then
|
||||
if not(type=="cooking") and not(width_str == "unordered") then
|
||||
element_render = "textarea["..tostring(col+col_offset+0.375)..","..tostring(row+row_offset+0.25)
|
||||
..";1,1;;"..S(prefix)..";]"
|
||||
else
|
||||
element_render = ""
|
||||
end
|
||||
elseif prefix == "group:" then
|
||||
element_render = "textarea["..tostring(col+col_offset+0.25)..","..tostring(row+row_offset)..";1,1;;"
|
||||
..S(prefix).."\n"..S(name)..";]"
|
||||
else
|
||||
local desc = craft_items[item].description or ""
|
||||
if craft_items[item].type == "node" and craft_items[item].drawtype=="normal" then
|
||||
local node_img = create_inv_cube(craft_items[item].tiles)
|
||||
element_render = "image["..tostring(col+col_offset)..","..tostring(row+row_offset)..";1,1;"
|
||||
.. node_img.."]"
|
||||
element_render = element_render.."textarea["..tostring(col+col_offset+0.25)..","
|
||||
..tostring(row+row_offset+label_row_offset)..";1,0.5;;"..desc..";]"
|
||||
else
|
||||
element_render = "image["..tostring(col+col_offset)..","..tostring(row+row_offset)..";1,1;"
|
||||
..(craft_items[item].inventory_image or "blank.png").."]"
|
||||
element_render = element_render.."textarea["..tostring(col+col_offset+0.25)..","
|
||||
..tostring(row+row_offset+label_row_offset)..";1,0.5;;"..desc..";]"
|
||||
end
|
||||
end
|
||||
render = render..element_render
|
||||
col = col + 1
|
||||
if col == 2 then
|
||||
label_row_offset = label_row_offset + 1.5
|
||||
row = row + 1
|
||||
col = 0
|
||||
end
|
||||
end
|
||||
--Nav bar
|
||||
local recipe_count = #recipes
|
||||
if recipe_count > 1 then
|
||||
if recipe_no > 1 then
|
||||
render = render .."button["..tostring(col_offset-3)..","..tostring(row_offset+1.5)
|
||||
..";1,1;btn_previous_recipe;<<]"
|
||||
end
|
||||
render = render .."label["..tostring(col_offset-2)..","..tostring(row_offset+1.625)
|
||||
..";"..tostring(recipe_no).." / "..tostring(recipe_count).."]"
|
||||
if recipe_no < recipe_count then
|
||||
render = render .."button["..tostring(col_offset-1.5)..","..tostring(row_offset+1.5)
|
||||
..";1,1;btn_next_recipe;>>]"
|
||||
end
|
||||
end
|
||||
end
|
||||
return render
|
||||
end
|
||||
|
||||
local function create_form(player)
|
||||
local context = sfinv.get_or_create_context(player)
|
||||
return [[
|
||||
image_button[0,0;1,1;;btn_build;]]..S("Build")..[[;;]
|
||||
image_button[1,0;1,1;;btn_deco;]]..S("Deco")..[[;;]
|
||||
image_button[2,0;1,1;;btn_food;]]..S("Food")..[[;;]
|
||||
image_button[3,0;1,1;;btn_ore;]]..S("Ores")..[[;;]
|
||||
image_button[4,0;1,1;;btn_pottery;]]..S("Pottery")..[[;;]
|
||||
image_button[5,0;1,1;;btn_tool;]]..S("Tools")..[[;;]
|
||||
image_button[6,0;1,1;;btn_vessel;]]..S("Vessels")..[[;;]
|
||||
image_button[7,0;1,1;;btn_weapon;]]..S("Weapons")..[[;;]
|
||||
]]..(context.recipes or "")..[[
|
||||
]]..(context.crafts or "")..[[
|
||||
]]
|
||||
end
|
||||
|
||||
local function get_crafts(group)
|
||||
local crafts = {}
|
||||
--minetest.get_all_craft_recipes(query_item)
|
||||
for name, def in pairs(craft_items) do
|
||||
if minetest.get_item_group(name, group) > 0 then
|
||||
local recipe = minetest.get_all_craft_recipes(name)
|
||||
crafts[#crafts+1] = {name = name, def = def, recipe = recipe}
|
||||
end
|
||||
end
|
||||
return crafts
|
||||
end
|
||||
|
||||
sfinv.register_page("wiki", {
|
||||
title = S("Wiki"),
|
||||
get = function(self, player, context)
|
||||
local _context = sfinv.get_or_create_context(player)
|
||||
--_context.craft_page = 1
|
||||
sfinv.set_context(player, _context)
|
||||
return sfinv.make_formspec(player, context, create_form(player), false)
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, fields)
|
||||
if not fields then
|
||||
return
|
||||
end
|
||||
local _context = sfinv.get_or_create_context(player)
|
||||
for key, value in pairs(fields) do
|
||||
local prefix = string.sub(key, 1, 4)
|
||||
if prefix == "quit" then
|
||||
return
|
||||
end
|
||||
if not(prefix=="btn_") then
|
||||
_context.item_name = key
|
||||
_context.recipe_no = 1
|
||||
_context.recipes = render_recipes(_context.item_name, _context.recipe_no)
|
||||
else
|
||||
if fields.btn_previous_recipe or fields.btn_next_recipe then
|
||||
if fields.btn_previous_recipe then
|
||||
_context.recipe_no = _context.recipe_no - 1
|
||||
else
|
||||
_context.recipe_no = _context.recipe_no + 1
|
||||
end
|
||||
_context.recipes = render_recipes(_context.item_name, _context.recipe_no)
|
||||
else
|
||||
local group
|
||||
if not _context.craft_page then
|
||||
_context.craft_page = 1
|
||||
end
|
||||
if fields.btn_previous_craft or fields.btn_next_craft then
|
||||
if fields.btn_previous_craft then
|
||||
_context.craft_page = _context.craft_page - 1
|
||||
else
|
||||
_context.craft_page = _context.craft_page + 1
|
||||
end
|
||||
group = _context.group
|
||||
else
|
||||
group = string.sub(key, 5, string.len(key))
|
||||
_context.group = group
|
||||
_context.craft_page = 1
|
||||
end
|
||||
local crafts = get_crafts(group)
|
||||
if crafts then
|
||||
_context.crafts = render_crafts(crafts, _context.craft_page)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
--minetest.chat_send_all(tostring(_context.craft_page))
|
||||
sfinv.set_context(player, _context)
|
||||
sfinv.set_page(player, "wiki")
|
||||
end,
|
||||
})
|
|
@ -0,0 +1,20 @@
|
|||
# textdomain: wikiz
|
||||
Build=Construir
|
||||
cooking=hornear
|
||||
Deco=Deco
|
||||
dirt=tierra
|
||||
empty=vacío
|
||||
Food=Comida
|
||||
group:=grupo:
|
||||
ordered=ordenado
|
||||
Ores=Mineral
|
||||
planks=tablas de madera
|
||||
Pottery=Alfarería
|
||||
sand=arena
|
||||
stick=palo
|
||||
stone=piedra
|
||||
Tools=Herra.
|
||||
unordered=desordenado
|
||||
Vessels=Envases
|
||||
water=agua
|
||||
Weapons=Armas
|
|
@ -0,0 +1,3 @@
|
|||
name = wikiz
|
||||
description = Craft Wiki
|
||||
depends = sfinv
|