Fix glass panes sides (#2500)
[oweals/minetest_game.git] / mods / xpanes / init.lua
index dc7428facdbd65b1f93346a05b115a374d68b50e..27f4c013197fa6585a18a8609806be3b98c68d28 100644 (file)
@@ -1,3 +1,8 @@
+-- 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
@@ -27,7 +32,7 @@ local function swap(pos, node, name, param2)
                return
        end
 
-       minetest.set_node(pos, {name = name, param2 = param2})
+       minetest.swap_node(pos, {name = name, param2 = param2})
 end
 
 local function update_pane(pos)
@@ -100,10 +105,18 @@ function xpanes.register_pane(name, def)
                inventory_image = def.inventory_image,
                wield_image = def.wield_image,
                paramtype2 = "facedir",
-               tiles = {def.textures[3], def.textures[3], def.textures[1]},
+               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 or false,
                node_box = {
                        type = "fixed",
                        fixed = {{-1/2, -1/2, -1/32, 1/2, 1/2, 1/32}},
@@ -128,6 +141,7 @@ function xpanes.register_pane(name, def)
                groups = groups,
                drop = "xpanes:" .. name .. "_flat",
                sounds = def.sounds,
+               use_texture_alpha = def.use_texture_alpha or false,
                node_box = {
                        type = "connected",
                        fixed = {{-1/32, -1/2, -1/32, 1/32, 1/2, 1/32}},
@@ -146,8 +160,8 @@ function xpanes.register_pane(name, def)
 end
 
 xpanes.register_pane("pane", {
-       description = "Glass Pane",
-       textures = {"default_glass.png","xpanes_pane_half.png","xpanes_white.png"},
+       description = S("Glass Pane"),
+       textures = {"default_glass.png","xpanes_pane_half.png","xpanes_edge.png"},
        inventory_image = "default_glass.png",
        wield_image = "default_glass.png",
        sounds = default.node_sound_glass_defaults(),
@@ -158,13 +172,26 @@ xpanes.register_pane("pane", {
        }
 })
 
+xpanes.register_pane("obsidian_pane", {
+       description = S("Obsidian Glass Pane"),
+       textures = {"default_obsidian_glass.png","xpanes_pane_half.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 = "Iron bar",
-       textures = {"xpanes_bar.png","xpanes_bar.png","xpanes_space.png"},
+       description = S("Steel Bars"),
+       textures = {"xpanes_bar.png","xpanes_bar.png","xpanes_bar_top.png"},
        inventory_image = "xpanes_bar.png",
        wield_image = "xpanes_bar.png",
        groups = {cracky=2},
-       sounds = default.node_sound_stone_defaults(),
+       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"}
@@ -182,3 +209,45 @@ minetest.register_lbm({
                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 = {cracky = 1, level = 2},
+               sounds = default.node_sound_metal_defaults(),
+               sound_open = "doors_steel_door_open",
+               sound_close = "doors_steel_door_close",
+               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 = {cracky = 1, level = 2, door = 1},
+               sounds = default.node_sound_metal_defaults(),
+               sound_open = "doors_steel_door_open",
+               sound_close = "doors_steel_door_close",
+       })
+
+       minetest.register_craft({
+               output = "xpanes:trapdoor_steel_bar",
+               recipe = {
+                       {"xpanes:bar_flat", "xpanes:bar_flat"},
+                       {"xpanes:bar_flat", "xpanes:bar_flat"},
+               }
+       })
+end