123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- 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
- -- copied from castle_masonry in case that mod is not loaded
- local get_material_properties = function(material)
- local composition_def
- local burn_time
- if material.composition_material ~= nil then
- composition_def = minetest.registered_nodes[material.composition_material]
- burn_time = minetest.get_craft_result({method="fuel", width=1, items={ItemStack(material.composition_material)}}).time
- else
- composition_def = minetest.registered_nodes[material.craft_material]
- burn_time = minetest.get_craft_result({method="fuel", width=1, items={ItemStack(material.craft_materia)}}).time
- end
-
- local tiles = material.tile
- if tiles == nil then
- tiles = composition_def.tile
- elseif type(tiles) == "string" then
- tiles = {tiles}
- end
- local desc = material.desc
- if desc == nil then
- desc = composition_def.description
- end
-
- return composition_def, burn_time, tiles, desc
- end
- local materials
- if minetest.get_modpath("castle_masonry") then
- materials = castle_masonry.materials
- else
- materials = {{name="stonebrick", desc=S("Stonebrick"), tile="default_stone_brick.png", craft_material="default:stonebrick"}}
- end
- castle_gates.register_gate_slot = function(material)
- local composition_def, burn_time, tile, desc = get_material_properties(material)
- local mod_name = minetest.get_current_modname()
- minetest.register_node(mod_name..":"..material.name.."_gate_slot", {
- drawtype = "nodebox",
- description = S("@1 Gate Slot", desc),
- _doc_items_longdesc = castle_gates.doc.gate_slot_longdesc,
- _doc_items_usagehelp = castle_gates.doc.gate_slot_usagehelp,
- tiles = tile,
- paramtype = "light",
- paramtype2 = "facedir",
- groups = composition_def.groups,
- sounds = composition_def.sounds,
-
- node_box = {
- type = "fixed",
- fixed = {
- {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- body
- {-0.5, -0.5, -0.75, 0.5, 0.5, -1.5}, -- bracket
- }
- },
-
- collision_box = {
- type = "fixed",
- fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 1.5}, -- body
- },
- })
-
- minetest.register_node(mod_name..":"..material.name.."_gate_slot_reverse", {
- drawtype = "nodebox",
- description = S("@1 Gate Slot Reverse", desc),
- _doc_items_longdesc = castle_gates.doc.gate_slot_reverse_longdesc,
- _doc_items_usagehelp = castle_gates.doc.gate_slot_reverse_usagehelp,
- tiles = tile,
- paramtype = "light",
- paramtype2 = "facedir",
- groups = composition_def.groups,
- sounds = composition_def.sounds,
-
- node_box = {
- type = "fixed",
- fixed = {
- {-0.5, -0.5, -1.25, 0.5, 0.5, 0.5}, -- body
- }
- },
-
- collision_box = {
- type = "fixed",
- fixed = {-0.5, -0.5, -1.25, 0.5, 0.5, 0.5}, -- body
- },
- })
-
-
- minetest.register_craft({
- output = mod_name..":"..material.name.."_gate_slot 2",
- recipe = {
- {material.craft_material,"",material.craft_material},
- {material.craft_material,"",material.craft_material},
- },
- })
-
- minetest.register_craft({
- output = mod_name..":"..material.name.."_gate_slot",
- type = "shapeless",
- recipe = {mod_name..":"..material.name.."_gate_slot_reverse"},
- })
- minetest.register_craft({
- output = mod_name..":"..material.name.."_gate_slot_reverse",
- type = "shapeless",
- recipe = {mod_name..":"..material.name.."_gate_slot"},
- })
-
- if burn_time > 0 then
- minetest.register_craft({
- type = "fuel",
- recipe = mod_name..":"..material.name.."_gate_slot",
- burntime = burn_time * 2,
- })
- minetest.register_craft({
- type = "fuel",
- recipe = mod_name..":"..material.name.."_gate_slot_reverse",
- burntime = burn_time * 2,
- })
- end
- end
- castle_gates.register_gate_slot_alias = function(old_mod_name, old_material_name, new_mod_name, new_material_name)
- minetest.register_alias(old_mod_name..":"..old_material_name.."_gate_slot", new_mod_name..":"..new_material_name.."_gate_slot")
- minetest.register_alias(old_mod_name..":"..old_material_name.."_gate_slot_reverse", new_mod_name..":"..new_material_name.."_gate_slot_reverse")
- end
- castle_gates.register_gate_slot_alias_force = function(old_mod_name, old_material_name, new_mod_name, new_material_name)
- minetest.register_alias_force(old_mod_name..":"..old_material_name.."_gate_slot", new_mod_name..":"..new_material_name.."_gate_slot")
- minetest.register_alias_force(old_mod_name..":"..old_material_name.."_gate_slot_reverse", new_mod_name..":"..new_material_name.."_gate_slot_reverse")
- end
- for _, material in pairs(materials) do
- castle_gates.register_gate_slot(material)
- end
|