diff options
Diffstat (limited to 'castle_gates/gates.lua')
-rw-r--r-- | castle_gates/gates.lua | 195 |
1 files changed, 115 insertions, 80 deletions
diff --git a/castle_gates/gates.lua b/castle_gates/gates.lua index e7195ef..ce47176 100644 --- a/castle_gates/gates.lua +++ b/castle_gates/gates.lua @@ -2,21 +2,37 @@ local MP = minetest.get_modpath(minetest.get_current_modname()) local S, NS = dofile(MP.."/intllib.lua") -minetest.register_node("castle_gates:portcullis_bars", { +minetest.register_alias("castle_gates:gate_edge", "castle_gates:wood_gate_edge") +minetest.register_alias("castle_gates:gate_edge_handle", "castle_gates:wood_gate_edge_handle") +minetest.register_alias("castle_gates:gate_hinge", "castle_gates:wood_gate_hinge") +minetest.register_alias("castle_gates:gate_panel", "castle_gates:wood_gate_panel") +minetest.register_alias("castle_gates:portcullis_bars", "castle_gates:wood_portcullis_bars") +minetest.register_alias("castle_gates:portcullis_bars_bottom", "castle_gates:wood_portcullis_bars_bottom") + +local register_gates = function(node_prefix, material_description, material_texture, gate_groups, gate_sounds, portcullis_recipe, panel_recipe) + +local portcullis_groups = {castle_gate = 1, flow_through = 1} +local panel_groups = {castle_gate = 1} +for group, val in pairs(gate_groups) do + portcullis_groups[group] = val + panel_groups[group] = val +end + +minetest.register_node("castle_gates:"..node_prefix.."_portcullis_bars", { drawtype = "nodebox", - description = S("Portcullis Bars"), + description = S("@1 Portcullis Bars", material_description), _doc_items_longdesc = castle_gates.doc.portcullis_bars_longdesc, _doc_items_usagehelp = castle_gates.doc.portcullis_bars_usagehelp, - groups = {castle_gate = 1, choppy = 1, flow_through = 1}, + groups = portcullis_groups, tiles = { - "castle_steel.png^(default_wood.png^[transformR90^[mask:castle_portcullis_mask.png)", - "castle_steel.png^(default_wood.png^[transformR90^[mask:castle_portcullis_mask.png)", - "default_wood.png^[transformR90", - "default_wood.png^[transformR90", - "castle_steel.png^(default_wood.png^[transformR90^[mask:castle_portcullis_mask.png)", - "castle_steel.png^(default_wood.png^[transformR90^[mask:castle_portcullis_mask.png)", + "castle_steel.png^("..material_texture.."^[transformR90^[mask:castle_portcullis_mask.png)", + "castle_steel.png^("..material_texture.."^[transformR90^[mask:castle_portcullis_mask.png)", + material_texture.."^[transformR90", + material_texture.."^[transformR90", + "castle_steel.png^("..material_texture.."^[transformR90^[mask:castle_portcullis_mask.png)", + "castle_steel.png^("..material_texture.."^[transformR90^[mask:castle_portcullis_mask.png)", }, - sounds = default.node_sound_wood_defaults(), + sounds = gate_sounds, paramtype = "light", paramtype2 = "facedir", node_box = { @@ -32,21 +48,21 @@ minetest.register_node("castle_gates:portcullis_bars", { on_rightclick = castle_gates.trigger_gate, }) -minetest.register_node("castle_gates:portcullis_bars_bottom", { +minetest.register_node("castle_gates:"..node_prefix.."_portcullis_bars_bottom", { drawtype = "nodebox", - description = S("Portcullis Bottom"), + description = S("@1 Portcullis Bottom", material_description), _doc_items_longdesc = castle_gates.doc.portcullis_bars_bottom_longdesc, _doc_items_usagehelp = castle_gates.doc.portcullis_bars_bottom_usagehelp, - groups = {castle_gate = 1, choppy = 1, flow_through = 1}, + groups = portcullis_groups, tiles = { - "castle_steel.png^(default_wood.png^[transformR90^[mask:castle_portcullis_mask.png)", - "castle_steel.png^(default_wood.png^[transformR90^[mask:castle_portcullis_mask.png)", - "default_wood.png^[transformR90", - "default_wood.png^[transformR90", - "castle_steel.png^(default_wood.png^[transformR90^[mask:castle_portcullis_mask.png)", - "castle_steel.png^(default_wood.png^[transformR90^[mask:castle_portcullis_mask.png)", + "castle_steel.png^("..material_texture.."^[transformR90^[mask:castle_portcullis_mask.png)", + "castle_steel.png^("..material_texture.."^[transformR90^[mask:castle_portcullis_mask.png)", + material_texture.."^[transformR90", + material_texture.."^[transformR90", + "castle_steel.png^("..material_texture.."^[transformR90^[mask:castle_portcullis_mask.png)", + "castle_steel.png^("..material_texture.."^[transformR90^[mask:castle_portcullis_mask.png)", }, - sounds = default.node_sound_wood_defaults(), + sounds = gate_sounds, paramtype = "light", paramtype2 = "facedir", node_box = { @@ -67,53 +83,46 @@ minetest.register_node("castle_gates:portcullis_bars_bottom", { }) minetest.register_craft({ - output = "castle_gates:portcullis_bars 3", - recipe = { - {"group:wood","default:steel_ingot","group:wood" }, - {"group:wood","default:steel_ingot","group:wood" }, - {"group:wood","default:steel_ingot","group:wood" }, - }, + output = "castle_gates:"..node_prefix.."_portcullis_bars 3", + recipe = portcullis_recipe, }) minetest.register_craft({ - output = "castle_gates:portcullis_bars", + output = "castle_gates:"..node_prefix.."_portcullis_bars", recipe = { - {"castle_gates:portcullis_bars_bottom"} + {"castle_gates:"..node_prefix.."_portcullis_bars_bottom"} }, }) minetest.register_craft({ - output = "castle_gates:portcullis_bars_bottom", + output = "castle_gates:"..node_prefix.."_portcullis_bars_bottom", recipe = { - {"castle_gates:portcullis_bars"} + {"castle_gates:"..node_prefix.."_portcullis_bars"} }, }) -------------------------------------------------------------------------------------------------------------- minetest.register_craft({ - output = "castle_gates:gate_panel 8", - recipe = { - {"stairs:slab_wood","stairs:slab_wood", ""}, - {"stairs:slab_wood","stairs:slab_wood", ""}, - }, + output = "castle_gates:"..node_prefix.."_gate_panel 8", + recipe = panel_recipe, }) -minetest.register_node("castle_gates:gate_panel", { +minetest.register_node("castle_gates:"..node_prefix.."_gate_panel", { drawtype = "nodebox", - description = S("Gate Door"), + description = S("@1 Gate Door", material_description), _doc_items_longdesc = castle_gates.doc.gate_panel_longdesc, _doc_items_usagehelp = castle_gates.doc.gate_panel_usagehelp, - groups = {choppy = 1, castle_gate = 1}, + groups = panel_groups, tiles = { - "default_wood.png^[transformR90", - "default_wood.png^[transformR90", - "default_wood.png^[transformR90", - "default_wood.png^[transformR90", - "default_wood.png^[transformR90", - "default_wood.png^[transformR90", + material_texture.."^[transformR90", + material_texture.."^[transformR90", + material_texture.."^[transformR90", + material_texture.."^[transformR90", + material_texture.."^[transformR90", + material_texture.."^[transformR90", }, - sounds = default.node_sound_wood_defaults(), + sounds = gate_sounds, paramtype = "light", paramtype2 = "facedir", node_box = { @@ -126,26 +135,26 @@ minetest.register_node("castle_gates:gate_panel", { }) minetest.register_craft({ - output = "castle_gates:gate_edge", + output = "castle_gates:"..node_prefix.."_gate_edge", type = "shapeless", - recipe = {"castle_gates:gate_panel"}, + recipe = {"castle_gates:"..node_prefix.."_gate_panel"}, }) -minetest.register_node("castle_gates:gate_edge", { +minetest.register_node("castle_gates:"..node_prefix.."_gate_edge", { drawtype = "nodebox", - description = S("Gate Door Edge"), + description = S("@1 Gate Door Edge", material_description), _doc_items_longdesc = castle_gates.doc.gate_edge_longdesc, _doc_items_usagehelp = castle_gates.doc.gate_edge_usagehelp, - groups = {choppy = 1, castle_gate = 1}, + groups = panel_groups, tiles = { - "default_wood.png^[transformR90", - "default_wood.png^[transformR90", - "default_wood.png^[transformR90", - "default_wood.png^[transformR90", - "default_wood.png^[transformR90^(default_coal_block.png^[mask:castle_door_edge_mask.png^[transformFX)", - "default_wood.png^[transformR90^(default_coal_block.png^[mask:castle_door_edge_mask.png)", + material_texture.."^[transformR90", + material_texture.."^[transformR90", + material_texture.."^[transformR90", + material_texture.."^[transformR90", + material_texture.."^[transformR90^(default_coal_block.png^[mask:castle_door_edge_mask.png^[transformFX)", + material_texture.."^[transformR90^(default_coal_block.png^[mask:castle_door_edge_mask.png)", }, - sounds = default.node_sound_wood_defaults(), + sounds = gate_sounds, paramtype = "light", paramtype2 = "facedir", node_box = { @@ -159,32 +168,32 @@ minetest.register_node("castle_gates:gate_edge", { }) minetest.register_craft({ - output = "castle_gates:gate_edge_handle", + output = "castle_gates:"..node_prefix.."_gate_edge_handle", type = "shapeless", - recipe = {"castle_gates:gate_edge"}, + recipe = {"castle_gates:"..node_prefix.."_gate_edge"}, }) minetest.register_craft({ - output = "castle_gates:gate_panel", + output = "castle_gates:"..node_prefix.."_gate_panel", type = "shapeless", - recipe = {"castle_gates:gate_edge_handle"}, + recipe = {"castle_gates:"..node_prefix.."_gate_edge_handle"}, }) -minetest.register_node("castle_gates:gate_edge_handle", { +minetest.register_node("castle_gates:"..node_prefix.."_gate_edge_handle", { drawtype = "nodebox", - description = S("Gate Door With Handle"), + description = S("@1 Gate Door With Handle", material_description), _doc_items_longdesc = castle_gates.doc.gate_edge_handle_longdesc, _doc_items_usagehelp = castle_gates.doc.gate_edge_handle_usagehelp, - groups = {choppy = 1, castle_gate = 1}, + groups = panel_groups, tiles = { - "castle_steel.png^(default_wood.png^[mask:castle_door_side_mask.png^[transformR90)", - "castle_steel.png^(default_wood.png^[mask:castle_door_side_mask.png^[transformR270)", - "castle_steel.png^(default_wood.png^[transformR90^[mask:castle_door_side_mask.png)", - "castle_steel.png^(default_wood.png^[transformR90^[mask:(castle_door_side_mask.png^[transformFX))", - "default_wood.png^[transformR90^(default_coal_block.png^[mask:castle_door_edge_mask.png^[transformFX)^(castle_steel.png^[mask:castle_door_handle_mask.png^[transformFX)", - "default_wood.png^[transformR90^(default_coal_block.png^[mask:castle_door_edge_mask.png)^(castle_steel.png^[mask:castle_door_handle_mask.png)", + "castle_steel.png^("..material_texture.."^[mask:castle_door_side_mask.png^[transformR90)", + "castle_steel.png^("..material_texture.."^[mask:castle_door_side_mask.png^[transformR270)", + "castle_steel.png^("..material_texture.."^[transformR90^[mask:castle_door_side_mask.png)", + "castle_steel.png^("..material_texture.."^[transformR90^[mask:(castle_door_side_mask.png^[transformFX))", + material_texture.."^[transformR90^(default_coal_block.png^[mask:castle_door_edge_mask.png^[transformFX)^(castle_steel.png^[mask:castle_door_handle_mask.png^[transformFX)", + material_texture.."^[transformR90^(default_coal_block.png^[mask:castle_door_edge_mask.png)^(castle_steel.png^[mask:castle_door_handle_mask.png)", }, - sounds = default.node_sound_wood_defaults(), + sounds = gate_sounds, paramtype = "light", paramtype2 = "facedir", node_box = { @@ -205,24 +214,24 @@ minetest.register_node("castle_gates:gate_edge_handle", { ------------------------------------------------------------------------------ minetest.register_craft({ - output = "castle_gates:gate_hinge 3", + output = "castle_gates:"..node_prefix.."_gate_hinge 3", recipe = { - {"", "castle_gates:gate_panel", ""}, - {"default:steel_ingot", "castle_gates:gate_panel", ""}, - {"", "castle_gates:gate_panel", ""} + {"", "castle_gates:"..node_prefix.."_gate_panel", ""}, + {"default:steel_ingot", "castle_gates:"..node_prefix.."_gate_panel", ""}, + {"", "castle_gates:"..node_prefix.."_gate_panel", ""} }, }) -minetest.register_node("castle_gates:gate_hinge", { +minetest.register_node("castle_gates:"..node_prefix.."_gate_hinge", { drawtype = "nodebox", - description = S("Gate Door With Hinge"), + description = S("@1 Gate Door With Hinge", material_description), _doc_items_longdesc = castle_gates.doc.gate_hinge_longdesc, _doc_items_usagehelp = castle_gates.doc.gate_hinge_usagehelp, - groups = {choppy = 1, castle_gate = 1}, + groups = panel_groups, tiles = { - "default_wood.png^[transformR90", + material_texture.."^[transformR90", }, - sounds = default.node_sound_wood_defaults(), + sounds = gate_sounds, paramtype = "light", paramtype2 = "facedir", @@ -241,3 +250,29 @@ minetest.register_node("castle_gates:gate_hinge", { _gate_hinge = {axis="top", offset={"front","left"}}, on_rightclick = castle_gates.trigger_gate, }) + +end + +register_gates("wood", S("Wooden"), "default_wood.png", {choppy = 1}, default.node_sound_wood_defaults(), + { + {"group:wood","default:steel_ingot","group:wood" }, + {"group:wood","default:steel_ingot","group:wood" }, + {"group:wood","default:steel_ingot","group:wood" }, + }, + { + {"stairs:slab_wood","stairs:slab_wood", ""}, + {"stairs:slab_wood","stairs:slab_wood", ""}, + } +) + +register_gates("steel", S("Steel"), "default_steel_block.png", {cracky = 1, level = 2}, default.node_sound_metal_defaults(), + { + {"","default:steel_ingot","" }, + {"default:steel_ingot","default:steel_ingot","default:steel_ingot" }, + {"","default:steel_ingot","" }, + }, + { + {"stairs:slab_steelblock","stairs:slab_steelblock", ""}, + {"stairs:slab_steelblock","stairs:slab_steelblock", ""}, + } +) |