123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- --api
- ------------------------------------------------------------------------
- local log_node_prototype =
- {
- paramtype2 = "facedir",
- is_ground_content = false,
- groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
- sounds = generic_media.node_sound_wood_defaults(),
- on_place = minetest.rotate_node
- }
- local plank_node_prototype =
- {
- paramtype2 = "facedir",
- place_param2 = 0,
- is_ground_content = false,
- groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1},
- sounds = generic_media.node_sound_wood_defaults(),
- }
- local leaf_node_prototype =
- {
- drawtype = "allfaces_optional",
- waving = 1,
- paramtype = "light",
- is_ground_content = false,
- groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
- sounds = generic_media.node_sound_leaves_defaults(),
- on_break = function() end,
- }
- local wood_item_prototype =
- {
- groups =
- {
- wood = 1,
- }
- }
- local function get_definition(which)
- local orig
- if which == "log"
- then
- orig = log_node_prototype
- elseif which == "plank"
- then
- orig = plank_node_prototype
- elseif which == "leaf"
- then
- orig = leaf_node_prototype
- elseif which == "item"
- then
- orig = wood_item_prototype
- end
- local def = {}
- for k, v in pairs(orig)
- do
- def[k] = v
- end
- return def
- end
- local nodetypes =
- {
- log = function(name, ndef, def)
- ndef.tiles = {def.toptexture, def.toptexture, def.sidetexture}
- ndef.drop = "log"
- return name .. "_log"
- end,
- plank = function(name, ndef, def)
- ndef.tiles = {def.texture}
- ndef.drop = "plank"
- return name .. "_plank"
- end,
- leaf = function(name, ndef, def)
- ndef.tiles = {def.normaltexture}
- ndef.special_tiles = {def.simpletexture}
- ndef.drop = ""
- return name .. "_leaves"
- end,
- }
- local function register_node(type, name, def)
- if not def --everything's optional
- then
- return
- end
- local ndef = get_definition(type)
- ndef.description = def.description
- local regname = nodetypes[type](name, ndef, def) --node type specific modification
- minetest.register_node(regname, ndef)
- end
- --[[ Unused in The End, but potentially useful for other games
- local itemtypes =
- {
- log = function(name, idef, def)
- idef._sawing_result = name .. "_plank_item"
- return name .. "_log_item"
- end,
- plank = function(name, idef, def)
- idef._sawing_result = "stick"
- return name .. "_plank_item"
- end
- }
- local function register_item(type, name, def)
- if not def
- then
- return
- end
- local idef = get_definition("item")
- idef.description = def.description
- idef.inventory_image = def.itemtexture
- local regname = itemtypes[type](name, idef, def)
- minetest.register_craftitem(regname, idef)
- end
- ]]
- function wood_and_saws.register_wood(name, def)
- register_node("log", name, def.log)
- register_node("plank", name, def.plank)
- register_node("leaf", name, def.leaf)
- --register_item("log", name, def.log)
- --register_item("plank", name, def.plank)
- end
|