summaryrefslogtreecommitdiff
path: root/castle_gates/gates.lua
diff options
context:
space:
mode:
Diffstat (limited to 'castle_gates/gates.lua')
-rw-r--r--castle_gates/gates.lua243
1 files changed, 243 insertions, 0 deletions
diff --git a/castle_gates/gates.lua b/castle_gates/gates.lua
new file mode 100644
index 0000000..e7195ef
--- /dev/null
+++ b/castle_gates/gates.lua
@@ -0,0 +1,243 @@
+-- internationalization boilerplate
+local MP = minetest.get_modpath(minetest.get_current_modname())
+local S, NS = dofile(MP.."/intllib.lua")
+
+minetest.register_node("castle_gates:portcullis_bars", {
+ drawtype = "nodebox",
+ description = S("Portcullis Bars"),
+ _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},
+ 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)",
+ },
+ sounds = default.node_sound_wood_defaults(),
+ paramtype = "light",
+ paramtype2 = "facedir",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.125, -0.5, -0.5, 0.125, 0.5, -0.25}, -- middle bar
+ {-0.5, -0.5, -0.5, -0.375, 0.5, -0.25}, -- side bar
+ {0.375, -0.5, -0.5, 0.5, 0.5, -0.25}, -- side bar
+ {-0.375, 0.1875, -0.4375, 0.375, 0.3125, -0.3125}, -- crosspiece
+ {-0.375, -0.3125, -0.4375, 0.375, -0.1875, -0.3125}, -- crosspiece
+ }
+ },
+ on_rightclick = castle_gates.trigger_gate,
+})
+
+minetest.register_node("castle_gates:portcullis_bars_bottom", {
+ drawtype = "nodebox",
+ description = S("Portcullis Bottom"),
+ _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},
+ 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)",
+ },
+ sounds = default.node_sound_wood_defaults(),
+ paramtype = "light",
+ paramtype2 = "facedir",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.125, -0.5, -0.5, 0.125, 0.5, -0.25}, -- middle bar
+ {-0.5, -0.5, -0.5, -0.375, 0.5, -0.25}, -- side bar
+ {0.375, -0.5, -0.5, 0.5, 0.5, -0.25}, -- side bar
+ {-0.375, 0.1875, -0.4375, 0.375, 0.3125, -0.3125}, -- crosspiece
+ {-0.375, -0.3125, -0.4375, 0.375, -0.1875, -0.3125}, -- crosspiece
+ {-0.0625, -0.5, -0.4375, 0.0625, -0.625, -0.3125}, -- peg
+ {0.4375, -0.5, -0.4375, 0.5, -0.625, -0.3125}, -- peg
+ {-0.5, -0.5, -0.4375, -0.4375, -0.625, -0.3125}, -- peg
+ }
+ },
+ _gate_edges = {bottom=true},
+ on_rightclick = castle_gates.trigger_gate,
+})
+
+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" },
+ },
+})
+
+minetest.register_craft({
+ output = "castle_gates:portcullis_bars",
+ recipe = {
+ {"castle_gates:portcullis_bars_bottom"}
+ },
+})
+
+minetest.register_craft({
+ output = "castle_gates:portcullis_bars_bottom",
+ recipe = {
+ {"castle_gates:portcullis_bars"}
+ },
+})
+
+--------------------------------------------------------------------------------------------------------------
+
+minetest.register_craft({
+ output = "castle_gates:gate_panel 8",
+ recipe = {
+ {"stairs:slab_wood","stairs:slab_wood", ""},
+ {"stairs:slab_wood","stairs:slab_wood", ""},
+ },
+})
+
+minetest.register_node("castle_gates:gate_panel", {
+ drawtype = "nodebox",
+ description = S("Gate Door"),
+ _doc_items_longdesc = castle_gates.doc.gate_panel_longdesc,
+ _doc_items_usagehelp = castle_gates.doc.gate_panel_usagehelp,
+ groups = {choppy = 1, castle_gate = 1},
+ 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",
+ },
+ sounds = default.node_sound_wood_defaults(),
+ paramtype = "light",
+ paramtype2 = "facedir",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0.5, -0.25},
+ }
+ },
+ on_rightclick = castle_gates.trigger_gate,
+})
+
+minetest.register_craft({
+ output = "castle_gates:gate_edge",
+ type = "shapeless",
+ recipe = {"castle_gates:gate_panel"},
+})
+
+minetest.register_node("castle_gates:gate_edge", {
+ drawtype = "nodebox",
+ description = S("Gate Door Edge"),
+ _doc_items_longdesc = castle_gates.doc.gate_edge_longdesc,
+ _doc_items_usagehelp = castle_gates.doc.gate_edge_usagehelp,
+ groups = {choppy = 1, castle_gate = 1},
+ 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)",
+ },
+ sounds = default.node_sound_wood_defaults(),
+ paramtype = "light",
+ paramtype2 = "facedir",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0.5, -0.25},
+ }
+ },
+ _gate_edges = {right=true},
+ on_rightclick = castle_gates.trigger_gate,
+})
+
+minetest.register_craft({
+ output = "castle_gates:gate_edge_handle",
+ type = "shapeless",
+ recipe = {"castle_gates:gate_edge"},
+})
+
+minetest.register_craft({
+ output = "castle_gates:gate_panel",
+ type = "shapeless",
+ recipe = {"castle_gates:gate_edge_handle"},
+})
+
+minetest.register_node("castle_gates:gate_edge_handle", {
+ drawtype = "nodebox",
+ description = S("Gate Door With Handle"),
+ _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},
+ 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)",
+ },
+ sounds = default.node_sound_wood_defaults(),
+ paramtype = "light",
+ paramtype2 = "facedir",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0.5, -0.25},
+ {4/16, -4/16, -2/16, 6/16, 4/16, -3/16},
+ {4/16, -4/16, -9/16, 6/16, 4/16, -10/16},
+ {4/16, -4/16, -9/16, 6/16, -3/16, -3/16},
+ {4/16, 4/16, -9/16, 6/16, 3/16, -3/16},
+ }
+ },
+ _gate_edges = {right=true},
+ on_rightclick = castle_gates.trigger_gate,
+})
+
+
+------------------------------------------------------------------------------
+
+minetest.register_craft({
+ output = "castle_gates:gate_hinge 3",
+ recipe = {
+ {"", "castle_gates:gate_panel", ""},
+ {"default:steel_ingot", "castle_gates:gate_panel", ""},
+ {"", "castle_gates:gate_panel", ""}
+ },
+})
+
+minetest.register_node("castle_gates:gate_hinge", {
+ drawtype = "nodebox",
+ description = S("Gate Door With Hinge"),
+ _doc_items_longdesc = castle_gates.doc.gate_hinge_longdesc,
+ _doc_items_usagehelp = castle_gates.doc.gate_hinge_usagehelp,
+ groups = {choppy = 1, castle_gate = 1},
+ tiles = {
+ "default_wood.png^[transformR90",
+ },
+ sounds = default.node_sound_wood_defaults(),
+ paramtype = "light",
+ paramtype2 = "facedir",
+
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0.5, -0.25},
+ {-10/16, -4/16, -10/16, -6/16, 4/16, -6/16},
+ }
+ },
+ collision_box = {
+ type = "fixed",
+ fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, -0.25},
+ },
+
+ _gate_hinge = {axis="top", offset={"front","left"}},
+ on_rightclick = castle_gates.trigger_gate,
+})