From 2bb9764ff61d592248cb02be8b76c74eb66ce3ea Mon Sep 17 00:00:00 2001 From: IonicCheese Date: Thu, 19 Feb 2026 12:42:37 -0800 Subject: [PATCH] Add xpanes for the snow map --- mods/mtg/xpanes/README.txt | 32 +++ mods/mtg/xpanes/init.lua | 261 ++++++++++++++++++ mods/mtg/xpanes/license.txt | 65 +++++ mods/mtg/xpanes/locale/template.txt | 6 + mods/mtg/xpanes/locale/xpanes.bg.tr | 6 + mods/mtg/xpanes/locale/xpanes.de.tr | 6 + mods/mtg/xpanes/locale/xpanes.eo.tr | 6 + mods/mtg/xpanes/locale/xpanes.es.tr | 6 + mods/mtg/xpanes/locale/xpanes.eu.tr | 6 + mods/mtg/xpanes/locale/xpanes.fr.tr | 6 + mods/mtg/xpanes/locale/xpanes.id.tr | 6 + mods/mtg/xpanes/locale/xpanes.it.tr | 6 + mods/mtg/xpanes/locale/xpanes.ja.tr | 6 + mods/mtg/xpanes/locale/xpanes.jbo.tr | 6 + mods/mtg/xpanes/locale/xpanes.lv.tr | 6 + mods/mtg/xpanes/locale/xpanes.ms.tr | 6 + mods/mtg/xpanes/locale/xpanes.pl.tr | 6 + mods/mtg/xpanes/locale/xpanes.pt_BR.tr | 6 + mods/mtg/xpanes/locale/xpanes.ru.tr | 6 + mods/mtg/xpanes/locale/xpanes.sk.tr | 6 + mods/mtg/xpanes/locale/xpanes.sv.tr | 6 + mods/mtg/xpanes/locale/xpanes.uk.tr | 6 + mods/mtg/xpanes/locale/xpanes.zh_CN.tr | 6 + mods/mtg/xpanes/locale/xpanes.zh_TW.tr | 6 + mods/mtg/xpanes/mod.conf | 4 + .../sounds/xpanes_steel_bar_door_close.ogg | Bin 0 -> 17553 bytes .../sounds/xpanes_steel_bar_door_open.ogg | Bin 0 -> 21837 bytes mods/mtg/xpanes/textures/xpanes_bar.png | Bin 0 -> 155 bytes mods/mtg/xpanes/textures/xpanes_bar_top.png | Bin 0 -> 101 bytes .../xpanes/textures/xpanes_door_steel_bar.png | Bin 0 -> 552 bytes mods/mtg/xpanes/textures/xpanes_edge.png | Bin 0 -> 269 bytes .../xpanes/textures/xpanes_edge_obsidian.png | Bin 0 -> 98 bytes .../xpanes/textures/xpanes_item_steel_bar.png | Bin 0 -> 301 bytes .../textures/xpanes_trapdoor_steel_bar.png | Bin 0 -> 208 bytes .../xpanes_trapdoor_steel_bar_side.png | Bin 0 -> 98 bytes 35 files changed, 488 insertions(+) create mode 100644 mods/mtg/xpanes/README.txt create mode 100644 mods/mtg/xpanes/init.lua create mode 100644 mods/mtg/xpanes/license.txt create mode 100644 mods/mtg/xpanes/locale/template.txt create mode 100644 mods/mtg/xpanes/locale/xpanes.bg.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.de.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.eo.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.es.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.eu.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.fr.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.id.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.it.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.ja.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.jbo.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.lv.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.ms.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.pl.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.pt_BR.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.ru.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.sk.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.sv.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.uk.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.zh_CN.tr create mode 100644 mods/mtg/xpanes/locale/xpanes.zh_TW.tr create mode 100644 mods/mtg/xpanes/mod.conf create mode 100644 mods/mtg/xpanes/sounds/xpanes_steel_bar_door_close.ogg create mode 100644 mods/mtg/xpanes/sounds/xpanes_steel_bar_door_open.ogg create mode 100644 mods/mtg/xpanes/textures/xpanes_bar.png create mode 100644 mods/mtg/xpanes/textures/xpanes_bar_top.png create mode 100644 mods/mtg/xpanes/textures/xpanes_door_steel_bar.png create mode 100644 mods/mtg/xpanes/textures/xpanes_edge.png create mode 100644 mods/mtg/xpanes/textures/xpanes_edge_obsidian.png create mode 100644 mods/mtg/xpanes/textures/xpanes_item_steel_bar.png create mode 100644 mods/mtg/xpanes/textures/xpanes_trapdoor_steel_bar.png create mode 100644 mods/mtg/xpanes/textures/xpanes_trapdoor_steel_bar_side.png diff --git a/mods/mtg/xpanes/README.txt b/mods/mtg/xpanes/README.txt new file mode 100644 index 0000000..7e2a1be --- /dev/null +++ b/mods/mtg/xpanes/README.txt @@ -0,0 +1,32 @@ +Minetest Game mod: xpanes +========================= +See license.txt for license information. + +Authors of source code +---------------------- +Originally by xyz (MIT) +BlockMen (MIT) +sofar (MIT) +Various Minetest Game developers and contributors (MIT) + +Authors of media (textures) +--------------------------- +xyz (CC BY-SA 3.0): + All textures not mentioned below. + +Gambit (CC BY-SA 3.0): + xpanes_bar.png + +paramat (CC BY-SA 3.0): + xpanes_bar_top.png + +Krock (CC0 1.0): + xpanes_edge.png + +TumeniNodes (CC BY-SA 3.0): + xpanes_door_steel_bar.png + xpanes_item_steel_bar.png + xpanes_trapdoor_steel_bar.png + xpanes_trapdoor_steel_bar_side.png + xpanes_steel_bar_door_close.ogg + xpanes_steel_bar_door_open.ogg diff --git a/mods/mtg/xpanes/init.lua b/mods/mtg/xpanes/init.lua new file mode 100644 index 0000000..a02dbfe --- /dev/null +++ b/mods/mtg/xpanes/init.lua @@ -0,0 +1,261 @@ +-- xpanes/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("xpanes") + + +local function is_pane(pos) + return minetest.get_item_group(minetest.get_node(pos).name, "pane") > 0 +end + +local function connects_dir(pos, name, dir) + local aside = vector.add(pos, minetest.facedir_to_dir(dir)) + if is_pane(aside) then + return true + end + + local connects_to = minetest.registered_nodes[name].connects_to + if not connects_to then + return false + end + local list = minetest.find_nodes_in_area(aside, aside, connects_to) + + if #list > 0 then + return true + end + + return false +end + +local function swap(pos, node, name, param2) + if node.name == name and node.param2 == param2 then + return + end + + minetest.swap_node(pos, {name = name, param2 = param2}) +end + +local function update_pane(pos) + if not is_pane(pos) then + return + end + local node = minetest.get_node(pos) + local name = node.name + if name:sub(-5) == "_flat" then + name = name:sub(1, -6) + end + + local any = node.param2 + local c = {} + local count = 0 + for dir = 0, 3 do + c[dir] = connects_dir(pos, name, dir) + if c[dir] then + any = dir + count = count + 1 + end + end + + if count == 0 then + swap(pos, node, name .. "_flat", any) + elseif count == 1 then + swap(pos, node, name .. "_flat", (any + 1) % 4) + elseif count == 2 then + if (c[0] and c[2]) or (c[1] and c[3]) then + swap(pos, node, name .. "_flat", (any + 1) % 4) + else + swap(pos, node, name, 0) + end + else + swap(pos, node, name, 0) + end +end + +minetest.register_on_placenode(function(pos, node) + if minetest.get_item_group(node, "pane") then + update_pane(pos) + end + for i = 0, 3 do + local dir = minetest.facedir_to_dir(i) + update_pane(vector.add(pos, dir)) + end +end) + +minetest.register_on_dignode(function(pos) + for i = 0, 3 do + local dir = minetest.facedir_to_dir(i) + update_pane(vector.add(pos, dir)) + end +end) + +xpanes = {} +function xpanes.register_pane(name, def) + for i = 1, 15 do + minetest.register_alias("xpanes:" .. name .. "_" .. i, "xpanes:" .. name .. "_flat") + end + + local flatgroups = table.copy(def.groups) + flatgroups.pane = 1 + minetest.register_node(":xpanes:" .. name .. "_flat", { + description = def.description, + drawtype = "nodebox", + paramtype = "light", + is_ground_content = false, + sunlight_propagates = true, + inventory_image = def.inventory_image, + wield_image = def.wield_image, + paramtype2 = "facedir", + tiles = { + def.textures[3], + def.textures[3], + def.textures[3], + def.textures[3], + def.textures[1], + def.textures[1] + }, + groups = flatgroups, + drop = "xpanes:" .. name .. "_flat", + sounds = def.sounds, + use_texture_alpha = def.use_texture_alpha and "blend" or "clip", + node_box = { + type = "fixed", + fixed = {{-1/2, -1/2, -1/32, 1/2, 1/2, 1/32}}, + }, + selection_box = { + type = "fixed", + fixed = {{-1/2, -1/2, -1/32, 1/2, 1/2, 1/32}}, + }, + connect_sides = { "left", "right" }, + }) + + local groups = table.copy(def.groups) + groups.pane = 1 + groups.not_in_creative_inventory = 1 + minetest.register_node(":xpanes:" .. name, { + drawtype = "nodebox", + paramtype = "light", + is_ground_content = false, + sunlight_propagates = true, + description = def.description, + tiles = { + def.textures[3], + def.textures[3], + def.textures[1] + }, + groups = groups, + drop = "xpanes:" .. name .. "_flat", + sounds = def.sounds, + use_texture_alpha = def.use_texture_alpha and "blend" or "clip", + node_box = { + type = "connected", + fixed = {{-1/32, -1/2, -1/32, 1/32, 1/2, 1/32}}, + connect_front = {{-1/32, -1/2, -1/2, 1/32, 1/2, -1/32}}, + connect_left = {{-1/2, -1/2, -1/32, -1/32, 1/2, 1/32}}, + connect_back = {{-1/32, -1/2, 1/32, 1/32, 1/2, 1/2}}, + connect_right = {{1/32, -1/2, -1/32, 1/2, 1/2, 1/32}}, + }, + connects_to = {"group:pane", "group:stone", "group:glass", "group:wood", "group:tree"}, + }) + + minetest.register_craft({ + output = "xpanes:" .. name .. "_flat 16", + recipe = def.recipe + }) +end + +xpanes.register_pane("pane", { + description = S("Glass Pane"), + textures = {"default_glass.png", "", "xpanes_edge.png"}, + inventory_image = "default_glass.png", + wield_image = "default_glass.png", + sounds = default.node_sound_glass_defaults(), + groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3}, + recipe = { + {"default:glass", "default:glass", "default:glass"}, + {"default:glass", "default:glass", "default:glass"} + } +}) + +xpanes.register_pane("obsidian_pane", { + description = S("Obsidian Glass Pane"), + textures = {"default_obsidian_glass.png", "", "xpanes_edge_obsidian.png"}, + inventory_image = "default_obsidian_glass.png", + wield_image = "default_obsidian_glass.png", + sounds = default.node_sound_glass_defaults(), + groups = {snappy=2, cracky=3}, + recipe = { + {"default:obsidian_glass", "default:obsidian_glass", "default:obsidian_glass"}, + {"default:obsidian_glass", "default:obsidian_glass", "default:obsidian_glass"} + } +}) + +xpanes.register_pane("bar", { + description = S("Steel Bars"), + textures = {"xpanes_bar.png", "", "xpanes_bar_top.png"}, + inventory_image = "xpanes_bar.png", + wield_image = "xpanes_bar.png", + groups = {cracky=2}, + sounds = default.node_sound_metal_defaults(), + recipe = { + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"} + } +}) + +minetest.register_lbm({ + name = "xpanes:gen2", + nodenames = {"group:pane"}, + action = function(pos, node) + update_pane(pos) + for i = 0, 3 do + local dir = minetest.facedir_to_dir(i) + update_pane(vector.add(pos, dir)) + end + end +}) + +-- Register steel bar doors and trapdoors + +if minetest.get_modpath("doors") then + + doors.register("xpanes:door_steel_bar", { + tiles = {{name = "xpanes_door_steel_bar.png", backface_culling = true}}, + description = S("Steel Bar Door"), + inventory_image = "xpanes_item_steel_bar.png", + protected = true, + groups = {node = 1, cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), + sound_open = "xpanes_steel_bar_door_open", + sound_close = "xpanes_steel_bar_door_close", + gain_open = 0.15, + gain_close = 0.13, + recipe = { + {"xpanes:bar_flat", "xpanes:bar_flat"}, + {"xpanes:bar_flat", "xpanes:bar_flat"}, + {"xpanes:bar_flat", "xpanes:bar_flat"}, + }, + }) + + doors.register_trapdoor("xpanes:trapdoor_steel_bar", { + description = S("Steel Bar Trapdoor"), + inventory_image = "xpanes_trapdoor_steel_bar.png", + wield_image = "xpanes_trapdoor_steel_bar.png", + tile_front = "xpanes_trapdoor_steel_bar.png", + tile_side = "xpanes_trapdoor_steel_bar_side.png", + protected = true, + groups = {node = 1, cracky = 1, level = 2, door = 1}, + sounds = default.node_sound_metal_defaults(), + sound_open = "xpanes_steel_bar_door_open", + sound_close = "xpanes_steel_bar_door_close", + gain_open = 0.15, + gain_close = 0.13, + }) + + minetest.register_craft({ + output = "xpanes:trapdoor_steel_bar", + recipe = { + {"xpanes:bar_flat", "xpanes:bar_flat"}, + {"xpanes:bar_flat", "xpanes:bar_flat"}, + } + }) +end diff --git a/mods/mtg/xpanes/license.txt b/mods/mtg/xpanes/license.txt new file mode 100644 index 0000000..c1f31e3 --- /dev/null +++ b/mods/mtg/xpanes/license.txt @@ -0,0 +1,65 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2014-2016 xyz +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2016 Auke Kok +Copyright (C) 2014-2016 Various Minetest Game developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2014-2016 xyz +Copyright (C) 2013-2016 Gambit +Copyright (C) 2016 paramat +Copyright (C) 2019 TumeniNodes + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/mtg/xpanes/locale/template.txt b/mods/mtg/xpanes/locale/template.txt new file mode 100644 index 0000000..08dfbba --- /dev/null +++ b/mods/mtg/xpanes/locale/template.txt @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane= +Obsidian Glass Pane= +Steel Bars= +Steel Bar Door= +Steel Bar Trapdoor= diff --git a/mods/mtg/xpanes/locale/xpanes.bg.tr b/mods/mtg/xpanes/locale/xpanes.bg.tr new file mode 100644 index 0000000..e11e834 --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.bg.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Стъклен прозорец +Obsidian Glass Pane=Прозорец от обсидианово стъкло +Steel Bars=Стоманени решетки +Steel Bar Door=Стоманени решетки за врата +Steel Bar Trapdoor=Стоманени решетки за капак diff --git a/mods/mtg/xpanes/locale/xpanes.de.tr b/mods/mtg/xpanes/locale/xpanes.de.tr new file mode 100644 index 0000000..9852753 --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.de.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Glasscheibe +Obsidian Glass Pane=Obsidianglasscheibe +Steel Bars=Stahlgitter +Steel Bar Door=Stahlgittertür +Steel Bar Trapdoor=Stahlgitterfalltür diff --git a/mods/mtg/xpanes/locale/xpanes.eo.tr b/mods/mtg/xpanes/locale/xpanes.eo.tr new file mode 100644 index 0000000..cfbbfb5 --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.eo.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Vitra vitraĵo +Obsidian Glass Pane=Obsidiana vitra vitraĵo +Steel Bars=Ŝtalaj baraĵoj +Steel Bar Door=Ŝtala baraĵa pordo +Steel Bar Trapdoor=Ŝtala baraĵa plankpordo diff --git a/mods/mtg/xpanes/locale/xpanes.es.tr b/mods/mtg/xpanes/locale/xpanes.es.tr new file mode 100644 index 0000000..9902be7 --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.es.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Panel de vidrio +Obsidian Glass Pane=Panel de vidrio de obsidiana +Steel Bars=Barras de acero +Steel Bar Door=Puerta de barras de acero +Steel Bar Trapdoor=Trampilla de barras de acero diff --git a/mods/mtg/xpanes/locale/xpanes.eu.tr b/mods/mtg/xpanes/locale/xpanes.eu.tr new file mode 100644 index 0000000..c41c448 --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.eu.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Beirazko panela +Obsidian Glass Pane=Obsidiana-beirazko panela +Steel Bars=Altzairuzko barrak +Steel Bar Door=Altzairu-barrazko atea +Steel Bar Trapdoor=Altzairu-barrazko tranpola diff --git a/mods/mtg/xpanes/locale/xpanes.fr.tr b/mods/mtg/xpanes/locale/xpanes.fr.tr new file mode 100644 index 0000000..c751799 --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.fr.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Panneau de verre +Obsidian Glass Pane=Panneau de verre d'obsidienne +Steel Bars=Barreaux d'acier +Steel Bar Door=Porte en barreaux d'acier +Steel Bar Trapdoor=Trappe en barreaux d'acier diff --git a/mods/mtg/xpanes/locale/xpanes.id.tr b/mods/mtg/xpanes/locale/xpanes.id.tr new file mode 100644 index 0000000..906cc0f --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.id.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Panel Kaca +Obsidian Glass Pane=Panel Kaca Obsidian +Steel Bars=Batang Baja +Steel Bar Door=Pintu Batang Baja +Steel Bar Trapdoor=Pintu Kolong Batang Baja diff --git a/mods/mtg/xpanes/locale/xpanes.it.tr b/mods/mtg/xpanes/locale/xpanes.it.tr new file mode 100644 index 0000000..63c8b62 --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.it.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Pannello di vetro +Obsidian Glass Pane=Pannello di vetro d'ossidiana +Steel Bars=Sbarre d'acciaio +Steel Bar Door=Porta con sbarre d'acciaio +Steel Bar Trapdoor=Botola con sbarre d'acciaio diff --git a/mods/mtg/xpanes/locale/xpanes.ja.tr b/mods/mtg/xpanes/locale/xpanes.ja.tr new file mode 100644 index 0000000..06e0bed --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.ja.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=板ガラス +Obsidian Glass Pane=黒曜石の板ガラス +Steel Bars=鉄棒の柵 +Steel Bar Door=鉄棒のドア +Steel Bar Trapdoor=鉄棒のトラップドア diff --git a/mods/mtg/xpanes/locale/xpanes.jbo.tr b/mods/mtg/xpanes/locale/xpanes.jbo.tr new file mode 100644 index 0000000..333b531 --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.jbo.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=lo blaci plita +Obsidian Glass Pane=lo je'erma'ablaci blaci plita +Steel Bars=lo gasta garna +Steel Bar Door=lo gasta garna vrogai +Steel Bar Trapdoor=lo gasta garna lolvrogai diff --git a/mods/mtg/xpanes/locale/xpanes.lv.tr b/mods/mtg/xpanes/locale/xpanes.lv.tr new file mode 100644 index 0000000..c75849c --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.lv.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Stikla panelis +Obsidian Glass Pane=Obsidiāna stikla panelis +Steel Bars=Tērauda režģis +Steel Bar Door=Tērauda režģa durvis +Steel Bar Trapdoor=Tērauda režģa lūka diff --git a/mods/mtg/xpanes/locale/xpanes.ms.tr b/mods/mtg/xpanes/locale/xpanes.ms.tr new file mode 100644 index 0000000..dedfefa --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.ms.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Kaca Tingkap +Obsidian Glass Pane=Kaca Tingkap Obsidia +Steel Bars=Jeriji Keluli +Steel Bar Door=Pintu Jeriji Keluli +Steel Bar Trapdoor=Pintu Kolong Jeriji Keluli diff --git a/mods/mtg/xpanes/locale/xpanes.pl.tr b/mods/mtg/xpanes/locale/xpanes.pl.tr new file mode 100644 index 0000000..0ebb386 --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.pl.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Szyba +Obsidian Glass Pane=Obsydianowa szyba +Steel Bars=Stalowe kraty +Steel Bar Door=Drzwi ze stalowych krat +Steel Bar Trapdoor=Właz ze stalowych krat diff --git a/mods/mtg/xpanes/locale/xpanes.pt_BR.tr b/mods/mtg/xpanes/locale/xpanes.pt_BR.tr new file mode 100644 index 0000000..c1ca3b2 --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.pt_BR.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Painel de Vidro +Obsidian Glass Pane=Painel de Vidro de Obsidiana +Steel Bars=Barras de Aço +Steel Bar Door=Porta de Barras de Aço +Steel Bar Trapdoor=Alçapão de Barras de Aço diff --git a/mods/mtg/xpanes/locale/xpanes.ru.tr b/mods/mtg/xpanes/locale/xpanes.ru.tr new file mode 100644 index 0000000..cd7173e --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.ru.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Стеклянная панель +Obsidian Glass Pane=Панель из обсидианового стекла +Steel Bars=Стальная решетка +Steel Bar Door=Стальная решётчатая дверь +Steel Bar Trapdoor=Стальной решётчатый люк diff --git a/mods/mtg/xpanes/locale/xpanes.sk.tr b/mods/mtg/xpanes/locale/xpanes.sk.tr new file mode 100644 index 0000000..0d07e08 --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.sk.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Tabuľa skla +Obsidian Glass Pane=Tabuľa obsidiánového skla +Steel Bars=Oceľové mreže +Steel Bar Door=Dvere z oceľových mreží +Steel Bar Trapdoor=Padajúce dvere z oceľových mreží diff --git a/mods/mtg/xpanes/locale/xpanes.sv.tr b/mods/mtg/xpanes/locale/xpanes.sv.tr new file mode 100644 index 0000000..7b615dd --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.sv.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Glasruta +Obsidian Glass Pane=Obsidianglasruta +Steel Bars=Stålgaller +Steel Bar Door=Stålgallerdörr +Steel Bar Trapdoor=Stålgallerfallucka diff --git a/mods/mtg/xpanes/locale/xpanes.uk.tr b/mods/mtg/xpanes/locale/xpanes.uk.tr new file mode 100644 index 0000000..41033bd --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.uk.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Скляна панель +Obsidian Glass Pane=Панель з обсидіанового скла +Steel Bars=Ґрати +Steel Bar Door=Двері з ґратами +Steel Bar Trapdoor=Люк з ґратами diff --git a/mods/mtg/xpanes/locale/xpanes.zh_CN.tr b/mods/mtg/xpanes/locale/xpanes.zh_CN.tr new file mode 100644 index 0000000..7b1871c --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.zh_CN.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=玻璃窗 +Obsidian Glass Pane=黑曜石玻璃窗 +Steel Bars=钢筋 +Steel Bar Door=钢筋门 +Steel Bar Trapdoor=钢筋活板门 diff --git a/mods/mtg/xpanes/locale/xpanes.zh_TW.tr b/mods/mtg/xpanes/locale/xpanes.zh_TW.tr new file mode 100644 index 0000000..97ee7a2 --- /dev/null +++ b/mods/mtg/xpanes/locale/xpanes.zh_TW.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=玻璃窗 +Obsidian Glass Pane=黑曜石玻璃窗 +Steel Bars=鋼筋 +Steel Bar Door=鋼筋門 +Steel Bar Trapdoor=鋼筋活板門 diff --git a/mods/mtg/xpanes/mod.conf b/mods/mtg/xpanes/mod.conf new file mode 100644 index 0000000..dcb0716 --- /dev/null +++ b/mods/mtg/xpanes/mod.conf @@ -0,0 +1,4 @@ +name = xpanes +description = Minetest Game mod: xpanes +depends = default +optional_depends = doors diff --git a/mods/mtg/xpanes/sounds/xpanes_steel_bar_door_close.ogg b/mods/mtg/xpanes/sounds/xpanes_steel_bar_door_close.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0620bfb8a151b9434bcf0dab73f89d67579e233e GIT binary patch literal 17553 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
P|Dx4f_tt&aRnLoQa@$9GKhh@uc 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 literal 0 HcmV?d00001 diff --git a/mods/mtg/xpanes/textures/xpanes_bar.png b/mods/mtg/xpanes/textures/xpanes_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..3ea62a9382bc1bf942cdfb1786accaadeeb516c3 GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4h9AW2CEqh_A)RqFqH)P1v4;|O+IVEz`zjV z>EaktajUlPAnySK9;TU_l|Ou4UA&>eeQnZp-K-^cdVLcPHt@KKd{tohnD*DZAgf6rD;0NLv4>gTe~ HDWM4fpEfwl literal 0 HcmV?d00001 diff --git a/mods/mtg/xpanes/textures/xpanes_bar_top.png b/mods/mtg/xpanes/textures/xpanes_bar_top.png new file mode 100644 index 0000000000000000000000000000000000000000..2955d72c7e7e795a3804d6501871c60600307f68 GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRdMrH;E236Z!B?bltwg8_H*Q~6p;^Ja~9fpS( z7#O5HT^vI=qLcreKfvMgUrJC#U~VnDQ-R(j5r#Y2!j)nRckE|iU|{fc^>bP0l+XkK D8EqL+ literal 0 HcmV?d00001 diff --git a/mods/mtg/xpanes/textures/xpanes_door_steel_bar.png b/mods/mtg/xpanes/textures/xpanes_door_steel_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..39f45c302553aa9de4953a4aac6d472a680e1405 GIT binary patch literal 552 zcmeAS@N?(olHy`uVBq!ia0y~yU{GUVU{K&-W?*3O-1V!Gfq@|^z$e5NB%!8eXlNK2 z85tE76&DwmoSdAQnVFT9m7SfPmzP&iP*7M{SX5M0TwGjPSvh&~^vbB4FN%ZvV6KI_vrwPQB^&;Tjx{ z3{zLgUb(qNGGc<;>9hALmg|Na+r2t)p?c<9$J1YIF4ye2_-4+!kS z&vr3{Pn~(ab=$UTh8g>+=heMi`-0(Kx$AS^neRFnp5K0x{hY0B9z)#g^pd_+FJCZZ zUO$(sS(F>bAht4i-n*5r_A#tk_qet6$cSqxX!h^p1x){x#r#5 d-t8&-iu6OI9iEvUWME)m@O1TaS?83{1OSjllUV=& literal 0 HcmV?d00001 diff --git a/mods/mtg/xpanes/textures/xpanes_edge_obsidian.png b/mods/mtg/xpanes/textures/xpanes_edge_obsidian.png new file mode 100644 index 0000000000000000000000000000000000000000..abdd14e340c5bb68b8aae84d4d1600838fd87e51 GIT binary patch literal 98 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRdMrH;E236Z!B?bltwg8_HR{;S5c{M{}BN-_M z1_p6Y7sn8e>&XcW%*WW+QW6d@Ib}2@Ffgd!WX!JgDvD=dU|{fc^>bP0l+XkK?lBVs literal 0 HcmV?d00001 diff --git a/mods/mtg/xpanes/textures/xpanes_item_steel_bar.png b/mods/mtg/xpanes/textures/xpanes_item_steel_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..46e4d9c63b692488f01fe550be98d1d6bee2a207 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4rT@h1`S>QULwGcz+QD=RxYJ2y8sFE1}YKfj=$ps=v8sHmv8xVW^mw5+VGyu7@ss;Z`@ zroO(up`oF*wY9yyy|c5ktE;QKySt~Sr@y~{!h{KvCr_R-Wy;j4Q)kVZwQSk4ge?9t z1_lPkk|4ie28U-i(ij*Ray(reLnI_^4_*{&QV?-H7^{*IbP0l+XkKd;)V) literal 0 HcmV?d00001 diff --git a/mods/mtg/xpanes/textures/xpanes_trapdoor_steel_bar.png b/mods/mtg/xpanes/textures/xpanes_trapdoor_steel_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..a56c5ee3af9532d0031fbe2cfbcddfa917ef92aa GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdsSyd_r6q7#P&l)C>&`BO@cD zqN3vB;*yh-Gcz-@va<5>@`{U#D=RA}PoBJB!GZ%jQ@1fNFff(``2{mLJiC#`z`zjV z>Eal|5uN-ZVq@0PRiUw~CB#0MFg#?EQ%F83C%|T;Fd>mqpGE14NyF7G4p$qNNI7UV zOybc^ILm8uf^E@k<|{d~cCzbS5?H}E$*TB!PTI|xo6{Mld@<3PGo@0Gfq{X+)78&q Iol`;+02X&eQUCw| literal 0 HcmV?d00001 diff --git a/mods/mtg/xpanes/textures/xpanes_trapdoor_steel_bar_side.png b/mods/mtg/xpanes/textures/xpanes_trapdoor_steel_bar_side.png new file mode 100644 index 0000000000000000000000000000000000000000..a71231e84cf289acdb40c000f88ef44ea73d8274 GIT binary patch literal 98 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRdCT0c(hNQXTpBNYzI0Jk_Tp1V`rca+ffByUh z)45(VFffRCx;Tb#Tu+W*W#L)qaKM4HVKx(k>tXhv4~wtQVqjok@O1TaS?83{1OOBV B8NvVn literal 0 HcmV?d00001