123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288 |
- local MP, S, NS = nil
- if (minetest.get_modpath("intllib") == nil) then
- S = minetest.get_translator("castle_gates")
- else
- -- internationalization boilerplate
- MP = minetest.get_modpath(minetest.get_current_modname())
- S, NS = dofile(MP.."/intllib.lua")
- end
- 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("@1 Portcullis Bars", material_description),
- _doc_items_longdesc = castle_gates.doc.portcullis_bars_longdesc,
- _doc_items_usagehelp = castle_gates.doc.portcullis_bars_usagehelp,
- groups = portcullis_groups,
- tiles = {
- "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 = gate_sounds,
- 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:"..node_prefix.."_portcullis_bars_bottom", {
- drawtype = "nodebox",
- 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 = portcullis_groups,
- tiles = {
- "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 = gate_sounds,
- 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:"..node_prefix.."_portcullis_bars 3",
- recipe = portcullis_recipe,
- })
- minetest.register_craft({
- output = "castle_gates:"..node_prefix.."_portcullis_bars",
- recipe = {
- {"castle_gates:"..node_prefix.."_portcullis_bars_bottom"}
- },
- })
- minetest.register_craft({
- output = "castle_gates:"..node_prefix.."_portcullis_bars_bottom",
- recipe = {
- {"castle_gates:"..node_prefix.."_portcullis_bars"}
- },
- })
- --------------------------------------------------------------------------------------------------------------
- minetest.register_craft({
- output = "castle_gates:"..node_prefix.."_gate_panel 8",
- recipe = panel_recipe,
- })
- minetest.register_node("castle_gates:"..node_prefix.."_gate_panel", {
- drawtype = "nodebox",
- 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 = panel_groups,
- tiles = {
- material_texture.."^[transformR90",
- material_texture.."^[transformR90",
- material_texture.."^[transformR90",
- material_texture.."^[transformR90",
- material_texture.."^[transformR90",
- material_texture.."^[transformR90",
- },
- sounds = gate_sounds,
- 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:"..node_prefix.."_gate_edge",
- type = "shapeless",
- recipe = {"castle_gates:"..node_prefix.."_gate_panel"},
- })
- minetest.register_node("castle_gates:"..node_prefix.."_gate_edge", {
- drawtype = "nodebox",
- 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 = panel_groups,
- tiles = {
- 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 = gate_sounds,
- 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:"..node_prefix.."_gate_edge_handle",
- type = "shapeless",
- recipe = {"castle_gates:"..node_prefix.."_gate_edge"},
- })
- minetest.register_craft({
- output = "castle_gates:"..node_prefix.."_gate_panel",
- type = "shapeless",
- recipe = {"castle_gates:"..node_prefix.."_gate_edge_handle"},
- })
- minetest.register_node("castle_gates:"..node_prefix.."_gate_edge_handle", {
- drawtype = "nodebox",
- 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 = panel_groups,
- tiles = {
- "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 = gate_sounds,
- 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:"..node_prefix.."_gate_hinge 3",
- recipe = {
- {"", "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:"..node_prefix.."_gate_hinge", {
- drawtype = "nodebox",
- 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 = panel_groups,
- tiles = {
- material_texture.."^[transformR90",
- },
- sounds = gate_sounds,
- 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,
- })
- end
- register_gates("wood", S("Wooden"), "default_wood.png", {choppy = 1, castle_gate=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, castle_gate=1}, 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", ""},
- }
- )
|