Add support for basic_materials.

Add support for translations.
Fix some old code.
hightime^2
Thomas--S 2020-07-22 14:45:22 +02:00
parent 957deff24c
commit 09af19981c
2 changed files with 406 additions and 92 deletions

149
init.lua
View File

@ -4,6 +4,18 @@ ts_doors.registered_doors = {}
ts_doors.sounds = {}
-- Used for localization
local S = minetest.get_translator("ts_doors")
-- Use this to generate the translation template file.
--[[
local oldS = S
local function S(x)
print(x .. "=")
return oldS(x)
end
]]
if default.node_sound_metal_defaults then
ts_doors.sounds.metal = {
sounds = default.node_sound_metal_defaults(),
@ -31,46 +43,31 @@ ts_doors.sounds.glass = {
}
local function get_door_name(meta, item)
local door = ""
local trapdoor = meta:get_int("trapdoor") == 1
local locked = meta:get_int("locked") == 1
local solid = meta:get_int("solid") == 1
if trapdoor then
if locked then
if solid then
door = "ts_doors:trapdoor_full_locked_" .. item:gsub(":", "_")
else
door = "ts_doors:trapdoor_locked_" .. item:gsub(":", "_")
end
else
if solid then
door = "ts_doors:trapdoor_full_" .. item:gsub(":", "_")
else
door = "ts_doors:trapdoor_" .. item:gsub(":", "_")
end
end
else
if locked then
if solid then
door = "ts_doors:door_full_locked_" .. item:gsub(":", "_")
else
door = "ts_doors:door_locked_" .. item:gsub(":", "_")
end
else
if solid then
door = "ts_doors:door_full_" .. item:gsub(":", "_")
else
door = "ts_doors:door_" .. item:gsub(":", "_")
end
end
end
return door
local door_type_string = meta:get_int("trapdoor") == 1 and "trapdoor_" or "door_"
local locked_string = meta:get_int("locked") == 1 and "locked_" or ""
local solid_string = meta:get_int("solid") == 1 and "full_" or ""
return "ts_doors:" .. door_type_string .. solid_string .. locked_string .. item:gsub(":", "_")
end
local function register_alias(name, convert_to)
local function register_door_alias(name, convert_to)
minetest.register_alias(name, convert_to)
minetest.register_alias(name .. "_a", convert_to .. "_a")
minetest.register_alias(name .. "_b", convert_to .. "_b")
minetest.register_alias(name .. "_c", convert_to .. "_c")
minetest.register_alias(name .. "_d", convert_to .. "_d")
end
local function register_trapdoor_alias(name, convert_to)
minetest.register_alias(name, convert_to)
minetest.register_alias(name .. "_open", convert_to .. "_open")
end
function ts_doors.register_alias(name, convert_to)
name = name:gsub(":", "_")
convert_to = convert_to:gsub(":", "_")
for _,style in pairs({"", "full_", "locked_", "full_locked_"}) do
register_door_alias("ts_doors:door_" .. style .. name, "ts_doors:door_" .. style .. convert_to)
register_trapdoor_alias("ts_doors:trapdoor_" .. style .. name, "ts_doors:trapdoor_" .. style .. convert_to)
end
end
function ts_doors.register_door(item, description, texture, sounds, recipe)
@ -83,10 +80,11 @@ function ts_doors.register_door(item, description, texture, sounds, recipe)
end
recipe = recipe or item
ts_doors.registered_doors[item:gsub(":", "_")] = recipe
register_alias("doors:ts_door_" .. item:gsub(":", "_"), "ts_doors:door_" .. item:gsub(":", "_"))
register_alias("doors:ts_door_full_" .. item:gsub(":", "_"), "ts_doors:door_full_" .. item:gsub(":", "_"))
register_alias("doors:ts_door_locked_" .. item:gsub(":", "_"), "ts_doors:door_locked_" .. item:gsub(":", "_"))
register_alias("doors:ts_door_full_locked_" .. item:gsub(":", "_"), "ts_doors:door_full_locked_" .. item:gsub(":", "_"))
register_door_alias("doors:ts_door_" .. item:gsub(":", "_"), "ts_doors:door_" .. item:gsub(":", "_"))
register_door_alias("doors:ts_door_full_" .. item:gsub(":", "_"), "ts_doors:door_full_" .. item:gsub(":", "_"))
register_door_alias("doors:ts_door_locked_" .. item:gsub(":", "_"), "ts_doors:door_locked_" .. item:gsub(":", "_"))
register_door_alias("doors:ts_door_full_locked_" .. item:gsub(":", "_"), "ts_doors:door_full_locked_" .. item:gsub(":", "_"))
local groups = minetest.registered_nodes[item].groups
local door_groups = {door=1}
@ -98,7 +96,7 @@ function ts_doors.register_door(item, description, texture, sounds, recipe)
doors.register("ts_doors:door_" .. item:gsub(":", "_"), {
tiles = { { name = "[combine:32x38:0,0=" .. texture .. ":0,16=" .. texture .. ":0,32=" .. texture .. ":16,0=" .. texture .. ":16,16=" .. texture .. ":16,32=" .. texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base.png^[noalpha^[makealpha:0,255,0", backface_culling = true } },
description = description .. " Windowed Door",
description = S(description .. " Windowed Door"),
inventory_image = "[combine:32x32:0,8=" .. texture .. ":16,8=" .. texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_inv.png^[noalpha^[makealpha:0,255,0",
groups = table.copy(door_groups),
sounds = sounds.sounds or nil,
@ -108,7 +106,7 @@ function ts_doors.register_door(item, description, texture, sounds, recipe)
doors.register("ts_doors:door_full_" .. item:gsub(":", "_"), {
tiles = { { name = "[combine:32x38:0,0=" .. texture .. ":0,16=" .. texture .. ":0,32=" .. texture .. ":16,0=" .. texture .. ":16,16=" .. texture .. ":16,32=" .. texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_full.png^[noalpha", backface_culling = true } },
description = "Solid " .. description .. " Door",
description = S("Solid " .. description .. " Door"),
inventory_image = "[combine:32x32:0,8=" .. texture .. ":16,8=" .. texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_full_inv.png^[noalpha^[makealpha:0,255,0",
groups = table.copy(door_groups),
sounds = sounds.sounds or nil,
@ -117,7 +115,7 @@ function ts_doors.register_door(item, description, texture, sounds, recipe)
})
doors.register_trapdoor("ts_doors:trapdoor_" .. item:gsub(":", "_"), {
description = "Windowed " .. description .. " Trapdoor",
description = S("Windowed " .. description .. " Trapdoor"),
inventory_image = texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_trapdoor.png^[noalpha^[makealpha:0,255,0",
wield_image = texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_trapdoor.png^[noalpha^[makealpha:0,255,0",
tile_front = texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_trapdoor.png^[noalpha^[makealpha:0,255,0",
@ -129,7 +127,7 @@ function ts_doors.register_door(item, description, texture, sounds, recipe)
})
doors.register_trapdoor("ts_doors:trapdoor_full_" .. item:gsub(":", "_"), {
description = "Solid " .. description .. " Trapdoor",
description = S("Solid " .. description .. " Trapdoor"),
inventory_image = texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_trapdoor_full.png^[noalpha",
wield_image = texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_trapdoor_full.png^[noalpha",
tile_front = texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_trapdoor_full.png^[noalpha",
@ -144,7 +142,7 @@ function ts_doors.register_door(item, description, texture, sounds, recipe)
doors.register("ts_doors:door_locked_" .. item:gsub(":", "_"), {
tiles = { { name = "[combine:32x38:0,0=" .. texture .. ":0,16=" .. texture .. ":0,32=" .. texture .. ":16,0=" .. texture .. ":16,16=" .. texture .. ":16,32=" .. texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_locked.png^[noalpha^[makealpha:0,255,0", backface_culling = true } },
description = "Windowed Locked " .. description .. " Door",
description = S("Windowed Locked " .. description .. " Door"),
inventory_image = "[combine:32x32:0,8=" .. texture .. ":16,8=" .. texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_locked_inv.png^[noalpha^[makealpha:0,255,0",
protected = true,
groups = table.copy(door_groups),
@ -157,7 +155,7 @@ function ts_doors.register_door(item, description, texture, sounds, recipe)
doors.register("ts_doors:door_full_locked_" .. item:gsub(":", "_"), {
tiles = { { name = "[combine:32x38:0,0=" .. texture .. ":0,16=" .. texture .. ":0,32=" .. texture .. ":16,0=" .. texture .. ":16,16=" .. texture .. ":16,32=" .. texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_full_locked.png^[noalpha", backface_culling = true } },
description = "Solid Locked " .. description .. " Door",
description = S("Solid Locked " .. description .. " Door"),
inventory_image = "[combine:32x32:0,8=" .. texture .. ":16,8=" .. texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_full_locked_inv.png^[noalpha^[makealpha:0,255,0",
protected = true,
groups = table.copy(door_groups),
@ -169,7 +167,7 @@ function ts_doors.register_door(item, description, texture, sounds, recipe)
})
doors.register_trapdoor("ts_doors:trapdoor_locked_" .. item:gsub(":", "_"), {
description = "Windowed Locked " .. description .. " Trapdoor",
description = S("Windowed Locked " .. description .. " Trapdoor"),
inventory_image = texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_trapdoor_locked.png^[noalpha^[makealpha:0,255,0",
wield_image = texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_trapdoor_locked.png^[noalpha^[makealpha:0,255,0",
tile_front = texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_trapdoor_locked.png^[noalpha^[makealpha:0,255,0",
@ -182,7 +180,7 @@ function ts_doors.register_door(item, description, texture, sounds, recipe)
})
doors.register_trapdoor("ts_doors:trapdoor_full_locked_" .. item:gsub(":", "_"), {
description = "Solid Locked " .. description .. " Trapdoor",
description = S("Solid Locked " .. description .. " Trapdoor"),
inventory_image = texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_trapdoor_full_locked.png^[noalpha",
wield_image = texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_trapdoor_full_locked.png^[noalpha",
tile_front = texture .. "^[transformR90^[colorize:#fff:30^ts_doors_base_trapdoor_full_locked.png^[noalpha",
@ -242,32 +240,36 @@ if minetest.get_modpath("moreores") then
end
if minetest.get_modpath("technic") then
ts_doors.register_door("technic:brass_block", "Brass", "technic_brass_block.png", ts_doors.sounds.metal, "technic:brass_ingot")
ts_doors.register_door("technic:carbon_steel_block", "Carbon Steel", "technic_carbon_steel_block.png", ts_doors.sounds.metal, "technic:carbon_steel_ingot")
ts_doors.register_door("technic:cast_iron_block", "Cast Iron", "technic_cast_iron_block.png", ts_doors.sounds.metal, "technic:cast_iron_ingot")
ts_doors.register_door("technic:chromium_block", "Chromium", "technic_chromium_block.png", ts_doors.sounds.metal, "technic:chromium_ingot")
ts_doors.register_door("technic:lead_block", "Lead", "technic_lead_block.png", ts_doors.sounds.metal, "technic:lead_ingot")
ts_doors.register_door("technic:stainless_steel_block", "Stainless Steel", "technic_stainless_steel_block.png", ts_doors.sounds.metal, "technic:stainless_steel_ingot")
ts_doors.register_door("technic:zinc_block", "Zinc", "technic_zinc_block.png", ts_doors.sounds.metal, "technic:zinc_ingot")
ts_doors.register_door("technic:concrete", "Concrete", "technic_concrete_block.png", ts_doors.sounds.metal)
ts_doors.register_door("technic:blast_resistant_concrete", "Blast Resistant Concrete", "technic_blast_resistant_concrete_block.png", ts_doors.sounds.metal)
end
if minetest.get_modpath("basic_materials") then
ts_doors.register_door("basic_materials:brass_block", "Brass", "basic_materials_brass_block.png", ts_doors.sounds.metal, "basic_materials:brass_ingot")
ts_doors.register_door("basic_materials:concrete_block", "Concrete", "basic_materials_concrete_block.png", ts_doors.sounds.metal)
ts_doors.register_alias("technic:brass_block", "basic_materials:brass_block")
ts_doors.register_alias("technic:concrete", "basic_materials:concrete_block")
end
minetest.override_item("doors:door_steel", {
description = "Windowed Locked Plain Steel Door",
description = S("Windowed Locked Plain Steel Door"),
})
minetest.override_item("doors:door_wood", {
description = "Windowed Mixed Wood Door",
description = S("Windowed Mixed Wood Door"),
})
minetest.override_item("doors:trapdoor", {
description = "Windowed Mixed Wood Trapdoor",
description = S("Windowed Mixed Wood Trapdoor"),
})
minetest.override_item("doors:trapdoor_steel", {
description = "Windowed Locked Plain Steel Trapdoor",
description = S("Windowed Locked Plain Steel Trapdoor"),
})
@ -396,37 +398,6 @@ local function update_inventory(pos)
local locked = meta:get_int("locked") == 1
local solid = meta:get_int("solid") == 1
for item, recipe in pairs(ts_doors.registered_doors) do
if trapdoor then
if locked then
if solid then
inv:add_item("list", "ts_doors:trapdoor_full_locked_" .. item:gsub(":", "_"))
else
inv:add_item("list", "ts_doors:trapdoor_locked_" .. item:gsub(":", "_"))
end
else
if solid then
inv:add_item("list", "ts_doors:trapdoor_full_" .. item:gsub(":", "_"))
else
inv:add_item("list", "ts_doors:trapdoor_" .. item:gsub(":", "_"))
end
end
else
if locked then
if solid then
inv:add_item("list", "ts_doors:door_full_locked_" .. item:gsub(":", "_"))
else
inv:add_item("list", "ts_doors:door_locked_" .. item:gsub(":", "_"))
end
else
if solid then
inv:add_item("list", "ts_doors:door_full_" .. item:gsub(":", "_"))
else
inv:add_item("list", "ts_doors:door_" .. item:gsub(":", "_"))
end
end
end
end
local selection = meta:get_string("selection")
if selection and selection ~= "" then
local door = selection:sub(10)
@ -571,7 +542,7 @@ local function can_dig(pos, player)
end
ts_workshop.register_workshop("ts_doors", "workshop", {
description = "Door Workshop",
description = S("Door Workshop"),
tiles = {
"default_wood.png",
"default_wood.png",
@ -644,12 +615,6 @@ ts_workshop.register_workshop("ts_doors", "workshop", {
end,
update_inventory = update_inventory,
update_formspec = ts_doors.workshop.update_formspec,
on_receive_fields = on_receive_fields,
on_construct = on_construct,
allow_metadata_inventory_move = allow_metadata_inventory_move,
allow_metadata_inventory_put = allow_metadata_inventory_put,
allow_metadata_inventory_take = allow_metadata_inventory_take,
can_dig = can_dig,
})
minetest.register_lbm({

349
locale/template.txt Normal file
View File

@ -0,0 +1,349 @@
Aspen Windowed Door=
Solid Aspen Door=
Windowed Aspen Trapdoor=
Solid Aspen Trapdoor=
Windowed Locked Aspen Door=
Solid Locked Aspen Door=
Windowed Locked Aspen Trapdoor=
Solid Locked Aspen Trapdoor=
Pine Windowed Door=
Solid Pine Door=
Windowed Pine Trapdoor=
Solid Pine Trapdoor=
Windowed Locked Pine Door=
Solid Locked Pine Door=
Windowed Locked Pine Trapdoor=
Solid Locked Pine Trapdoor=
Acacia Windowed Door=
Solid Acacia Door=
Windowed Acacia Trapdoor=
Solid Acacia Trapdoor=
Windowed Locked Acacia Door=
Solid Locked Acacia Door=
Windowed Locked Acacia Trapdoor=
Solid Locked Acacia Trapdoor=
Wooden Windowed Door=
Solid Wooden Door=
Windowed Wooden Trapdoor=
Solid Wooden Trapdoor=
Windowed Locked Wooden Door=
Solid Locked Wooden Door=
Windowed Locked Wooden Trapdoor=
Solid Locked Wooden Trapdoor=
Jungle Wood Windowed Door=
Solid Jungle Wood Door=
Windowed Jungle Wood Trapdoor=
Solid Jungle Wood Trapdoor=
Windowed Locked Jungle Wood Door=
Solid Locked Jungle Wood Door=
Windowed Locked Jungle Wood Trapdoor=
Solid Locked Jungle Wood Trapdoor=
Apple Tree Windowed Door=
Solid Apple Tree Door=
Windowed Apple Tree Trapdoor=
Solid Apple Tree Trapdoor=
Windowed Locked Apple Tree Door=
Solid Locked Apple Tree Door=
Windowed Locked Apple Tree Trapdoor=
Solid Locked Apple Tree Trapdoor=
Beech Windowed Door=
Solid Beech Door=
Windowed Beech Trapdoor=
Solid Beech Trapdoor=
Windowed Locked Beech Door=
Solid Locked Beech Door=
Windowed Locked Beech Trapdoor=
Solid Locked Beech Trapdoor=
Birch Windowed Door=
Solid Birch Door=
Windowed Birch Trapdoor=
Solid Birch Trapdoor=
Windowed Locked Birch Door=
Solid Locked Birch Door=
Windowed Locked Birch Trapdoor=
Solid Locked Birch Trapdoor=
Fir Windowed Door=
Solid Fir Door=
Windowed Fir Trapdoor=
Solid Fir Trapdoor=
Windowed Locked Fir Door=
Solid Locked Fir Door=
Windowed Locked Fir Trapdoor=
Solid Locked Fir Trapdoor=
Oak Windowed Door=
Solid Oak Door=
Windowed Oak Trapdoor=
Solid Oak Trapdoor=
Windowed Locked Oak Door=
Solid Locked Oak Door=
Windowed Locked Oak Trapdoor=
Solid Locked Oak Trapdoor=
Palm Windowed Door=
Solid Palm Door=
Windowed Palm Trapdoor=
Solid Palm Trapdoor=
Windowed Locked Palm Door=
Solid Locked Palm Door=
Windowed Locked Palm Trapdoor=
Solid Locked Palm Trapdoor=
Rubber Tree Windowed Door=
Solid Rubber Tree Door=
Windowed Rubber Tree Trapdoor=
Solid Rubber Tree Trapdoor=
Windowed Locked Rubber Tree Door=
Solid Locked Rubber Tree Door=
Windowed Locked Rubber Tree Trapdoor=
Solid Locked Rubber Tree Trapdoor=
Sequoia Windowed Door=
Solid Sequoia Door=
Windowed Sequoia Trapdoor=
Solid Sequoia Trapdoor=
Windowed Locked Sequoia Door=
Solid Locked Sequoia Door=
Windowed Locked Sequoia Trapdoor=
Solid Locked Sequoia Trapdoor=
Spruce Windowed Door=
Solid Spruce Door=
Windowed Spruce Trapdoor=
Solid Spruce Trapdoor=
Windowed Locked Spruce Door=
Solid Locked Spruce Door=
Windowed Locked Spruce Trapdoor=
Solid Locked Spruce Trapdoor=
Willow Windowed Door=
Solid Willow Door=
Windowed Willow Trapdoor=
Solid Willow Trapdoor=
Windowed Locked Willow Door=
Solid Locked Willow Door=
Windowed Locked Willow Trapdoor=
Solid Locked Willow Trapdoor=
Banana Windowed Door=
Solid Banana Door=
Windowed Banana Trapdoor=
Solid Banana Trapdoor=
Windowed Locked Banana Door=
Solid Locked Banana Door=
Windowed Locked Banana Trapdoor=
Solid Locked Banana Trapdoor=
Birch Windowed Door=
Solid Birch Door=
Windowed Birch Trapdoor=
Solid Birch Trapdoor=
Windowed Locked Birch Door=
Solid Locked Birch Door=
Windowed Locked Birch Trapdoor=
Solid Locked Birch Trapdoor=
Frost Windowed Door=
Solid Frost Door=
Windowed Frost Trapdoor=
Solid Frost Trapdoor=
Windowed Locked Frost Door=
Solid Locked Frost Door=
Windowed Locked Frost Trapdoor=
Solid Locked Frost Trapdoor=
Mushroom Windowed Door=
Solid Mushroom Door=
Windowed Mushroom Trapdoor=
Solid Mushroom Trapdoor=
Windowed Locked Mushroom Door=
Solid Locked Mushroom Door=
Windowed Locked Mushroom Trapdoor=
Solid Locked Mushroom Trapdoor=
Palm Windowed Door=
Solid Palm Door=
Windowed Palm Trapdoor=
Solid Palm Trapdoor=
Windowed Locked Palm Door=
Solid Locked Palm Door=
Windowed Locked Palm Trapdoor=
Solid Locked Palm Trapdoor=
Redwood Windowed Door=
Solid Redwood Door=
Windowed Redwood Trapdoor=
Solid Redwood Trapdoor=
Windowed Locked Redwood Door=
Solid Locked Redwood Door=
Windowed Locked Redwood Trapdoor=
Solid Locked Redwood Trapdoor=
Sakura Windowed Door=
Solid Sakura Door=
Windowed Sakura Trapdoor=
Solid Sakura Trapdoor=
Windowed Locked Sakura Door=
Solid Locked Sakura Door=
Windowed Locked Sakura Trapdoor=
Solid Locked Sakura Trapdoor=
Scorched Windowed Door=
Solid Scorched Door=
Windowed Scorched Trapdoor=
Solid Scorched Trapdoor=
Windowed Locked Scorched Door=
Solid Locked Scorched Door=
Windowed Locked Scorched Trapdoor=
Solid Locked Scorched Trapdoor=
Willow Windowed Door=
Solid Willow Door=
Windowed Willow Trapdoor=
Solid Willow Trapdoor=
Windowed Locked Willow Door=
Solid Locked Willow Door=
Windowed Locked Willow Trapdoor=
Solid Locked Willow Trapdoor=
Healing Tree Windowed Door=
Solid Healing Tree Door=
Windowed Healing Tree Trapdoor=
Solid Healing Tree Trapdoor=
Windowed Locked Healing Tree Door=
Solid Locked Healing Tree Door=
Windowed Locked Healing Tree Trapdoor=
Solid Locked Healing Tree Trapdoor=
Crystal Windowed Door=
Solid Crystal Door=
Windowed Crystal Trapdoor=
Solid Crystal Trapdoor=
Windowed Locked Crystal Door=
Solid Locked Crystal Door=
Windowed Locked Crystal Trapdoor=
Solid Locked Crystal Trapdoor=
Bronze Windowed Door=
Solid Bronze Door=
Windowed Bronze Trapdoor=
Solid Bronze Trapdoor=
Windowed Locked Bronze Door=
Solid Locked Bronze Door=
Windowed Locked Bronze Trapdoor=
Solid Locked Bronze Trapdoor=
Copper Windowed Door=
Solid Copper Door=
Windowed Copper Trapdoor=
Solid Copper Trapdoor=
Windowed Locked Copper Door=
Solid Locked Copper Door=
Windowed Locked Copper Trapdoor=
Solid Locked Copper Trapdoor=
Diamond Windowed Door=
Solid Diamond Door=
Windowed Diamond Trapdoor=
Solid Diamond Trapdoor=
Windowed Locked Diamond Door=
Solid Locked Diamond Door=
Windowed Locked Diamond Trapdoor=
Solid Locked Diamond Trapdoor=
Gold Windowed Door=
Solid Gold Door=
Windowed Gold Trapdoor=
Solid Gold Trapdoor=
Windowed Locked Gold Door=
Solid Locked Gold Door=
Windowed Locked Gold Trapdoor=
Solid Locked Gold Trapdoor=
Steel Windowed Door=
Solid Steel Door=
Windowed Steel Trapdoor=
Solid Steel Trapdoor=
Windowed Locked Steel Door=
Solid Locked Steel Door=
Windowed Locked Steel Trapdoor=
Solid Locked Steel Trapdoor=
Mithril Windowed Door=
Solid Mithril Door=
Windowed Mithril Trapdoor=
Solid Mithril Trapdoor=
Windowed Locked Mithril Door=
Solid Locked Mithril Door=
Windowed Locked Mithril Trapdoor=
Solid Locked Mithril Trapdoor=
Silver Windowed Door=
Solid Silver Door=
Windowed Silver Trapdoor=
Solid Silver Trapdoor=
Windowed Locked Silver Door=
Solid Locked Silver Door=
Windowed Locked Silver Trapdoor=
Solid Locked Silver Trapdoor=
Tin Windowed Door=
Solid Tin Door=
Windowed Tin Trapdoor=
Solid Tin Trapdoor=
Windowed Locked Tin Door=
Solid Locked Tin Door=
Windowed Locked Tin Trapdoor=
Solid Locked Tin Trapdoor=
Carbon Steel Windowed Door=
Solid Carbon Steel Door=
Windowed Carbon Steel Trapdoor=
Solid Carbon Steel Trapdoor=
Windowed Locked Carbon Steel Door=
Solid Locked Carbon Steel Door=
Windowed Locked Carbon Steel Trapdoor=
Solid Locked Carbon Steel Trapdoor=
Cast Iron Windowed Door=
Solid Cast Iron Door=
Windowed Cast Iron Trapdoor=
Solid Cast Iron Trapdoor=
Windowed Locked Cast Iron Door=
Solid Locked Cast Iron Door=
Windowed Locked Cast Iron Trapdoor=
Solid Locked Cast Iron Trapdoor=
Chromium Windowed Door=
Solid Chromium Door=
Windowed Chromium Trapdoor=
Solid Chromium Trapdoor=
Windowed Locked Chromium Door=
Solid Locked Chromium Door=
Windowed Locked Chromium Trapdoor=
Solid Locked Chromium Trapdoor=
Lead Windowed Door=
Solid Lead Door=
Windowed Lead Trapdoor=
Solid Lead Trapdoor=
Windowed Locked Lead Door=
Solid Locked Lead Door=
Windowed Locked Lead Trapdoor=
Solid Locked Lead Trapdoor=
Stainless Steel Windowed Door=
Solid Stainless Steel Door=
Windowed Stainless Steel Trapdoor=
Solid Stainless Steel Trapdoor=
Windowed Locked Stainless Steel Door=
Solid Locked Stainless Steel Door=
Windowed Locked Stainless Steel Trapdoor=
Solid Locked Stainless Steel Trapdoor=
Zinc Windowed Door=
Solid Zinc Door=
Windowed Zinc Trapdoor=
Solid Zinc Trapdoor=
Windowed Locked Zinc Door=
Solid Locked Zinc Door=
Windowed Locked Zinc Trapdoor=
Solid Locked Zinc Trapdoor=
Blast Resistant Concrete Windowed Door=
Solid Blast Resistant Concrete Door=
Windowed Blast Resistant Concrete Trapdoor=
Solid Blast Resistant Concrete Trapdoor=
Windowed Locked Blast Resistant Concrete Door=
Solid Locked Blast Resistant Concrete Door=
Windowed Locked Blast Resistant Concrete Trapdoor=
Solid Locked Blast Resistant Concrete Trapdoor=
Brass Windowed Door=
Solid Brass Door=
Windowed Brass Trapdoor=
Solid Brass Trapdoor=
Windowed Locked Brass Door=
Solid Locked Brass Door=
Windowed Locked Brass Trapdoor=
Solid Locked Brass Trapdoor=
Concrete Windowed Door=
Solid Concrete Door=
Windowed Concrete Trapdoor=
Solid Concrete Trapdoor=
Windowed Locked Concrete Door=
Solid Locked Concrete Door=
Windowed Locked Concrete Trapdoor=
Solid Locked Concrete Trapdoor=
Windowed Locked Plain Steel Door=
Windowed Mixed Wood Door=
Windowed Mixed Wood Trapdoor=
Windowed Locked Plain Steel Trapdoor=
Door Workshop=