summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVanessa Ezekowitz <vanessaezekowitz@gmail.com>2017-02-12 20:05:50 -0500
committerVanessa Ezekowitz <vanessaezekowitz@gmail.com>2017-02-12 20:05:50 -0500
commitaa601daf67ca220290e03608fbaa4bcddbfcfbd8 (patch)
treea0759c06b939c90e8bed4d1af84e832bbbf0b842
parentce806489e2472c29bb6f32b0ec59f7e023f11c08 (diff)
downloaddreambuilder_modpack-aa601daf67ca220290e03608fbaa4bcddbfcfbd8.tar
dreambuilder_modpack-aa601daf67ca220290e03608fbaa4bcddbfcfbd8.tar.gz
dreambuilder_modpack-aa601daf67ca220290e03608fbaa4bcddbfcfbd8.tar.bz2
dreambuilder_modpack-aa601daf67ca220290e03608fbaa4bcddbfcfbd8.tar.xz
dreambuilder_modpack-aa601daf67ca220290e03608fbaa4bcddbfcfbd8.zip
update boost_cart, homedecor, mesecons, moretrees, unified_inventory, and worldedit
-rw-r--r--boost_cart/functions.lua6
-rw-r--r--colormachine/depends.txt6
-rw-r--r--colormachine/init.lua10
-rw-r--r--fake_fire/init.lua20
-rw-r--r--homedecor/clocks.lua26
-rw-r--r--homedecor/cobweb.lua11
-rw-r--r--homedecor/electrics.lua9
-rw-r--r--homedecor/foyer.lua17
-rw-r--r--homedecor/gastronomy.lua49
-rw-r--r--homedecor/handlers/expansion.lua14
-rw-r--r--homedecor/kitchen_furniture.lua4
-rw-r--r--homedecor/lighting.lua2
-rw-r--r--homedecor/office.lua26
-rw-r--r--homedecor/trash_cans.lua8
-rw-r--r--homedecor/wardrobe.lua10
-rw-r--r--homedecor_i18n/locale/de.po407
-rw-r--r--homedecor_i18n/locale/es.po428
-rw-r--r--homedecor_i18n/locale/fr.po395
-rw-r--r--homedecor_i18n/locale/it.po407
-rw-r--r--homedecor_i18n/locale/ms.po407
-rw-r--r--homedecor_i18n/locale/pt.po450
-rw-r--r--homedecor_i18n/locale/template.pot341
-rw-r--r--mesecons/init.lua26
-rw-r--r--mesecons/presets.lua13
-rw-r--r--mesecons/textures/jeija_microcontroller_LED_A.pngbin0 -> 1240 bytes
-rw-r--r--mesecons/textures/jeija_microcontroller_LED_B.pngbin0 -> 1239 bytes
-rw-r--r--mesecons/textures/jeija_microcontroller_LED_C.pngbin0 -> 1240 bytes
-rw-r--r--mesecons/textures/jeija_microcontroller_LED_D.pngbin0 -> 1239 bytes
-rw-r--r--mesecons/util.lua5
-rwxr-xr-x[-rw-r--r--]mesecons_blinkyplant/doc/blinkyplant/preview.pngbin66763 -> 66763 bytes
-rw-r--r--mesecons_button/init.lua2
-rw-r--r--mesecons_delayer/init.lua6
-rw-r--r--mesecons_extrawires/corner.lua2
-rw-r--r--mesecons_extrawires/crossover.lua91
-rw-r--r--mesecons_extrawires/models/mesecons_extrawires_crossover.b3dbin0 -> 3233 bytes
-rw-r--r--mesecons_extrawires/src/mesecons_extrawires_crossover.blendbin0 -> 498592 bytes
-rw-r--r--mesecons_extrawires/tjunction.lua2
-rw-r--r--mesecons_fpga/depends.txt1
-rw-r--r--mesecons_fpga/doc/fpga/description.html5
-rw-r--r--mesecons_fpga/doc/fpga/preview.pngbin0 -> 21329 bytes
-rw-r--r--mesecons_fpga/doc/fpga/recipe.pngbin0 -> 3210 bytes
-rw-r--r--mesecons_fpga/doc/programmer/description.html3
-rw-r--r--mesecons_fpga/doc/programmer/preview.pngbin0 -> 598 bytes
-rw-r--r--mesecons_fpga/doc/programmer/recipe.pngbin0 -> 1908 bytes
-rw-r--r--mesecons_fpga/init.lua375
-rw-r--r--mesecons_fpga/logic.lua210
-rw-r--r--mesecons_fpga/textures/jeija_fpga_programmer.pngbin0 -> 311 bytes
-rw-r--r--mesecons_fpga/textures/jeija_fpga_sides.pngbin0 -> 536 bytes
-rw-r--r--mesecons_fpga/textures/jeija_fpga_top.pngbin0 -> 816 bytes
-rw-r--r--mesecons_fpga/tool.lua62
-rw-r--r--mesecons_gates/init.lua2
-rw-r--r--mesecons_hydroturbine/init.lua25
-rw-r--r--mesecons_hydroturbine/models/jeija_hydro_turbine_off.obj429
-rw-r--r--mesecons_hydroturbine/models/jeija_hydro_turbine_on.obj2061
-rw-r--r--mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc_off.pngbin0 -> 820 bytes
-rw-r--r--mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc_on.pngbin0 -> 6957 bytes
-rw-r--r--mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom_off.pngbin0 -> 496 bytes
-rw-r--r--mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom_on.pngbin0 -> 5128 bytes
-rw-r--r--mesecons_insulated/init.lua2
-rw-r--r--mesecons_lamp/init.lua2
-rw-r--r--mesecons_luacontroller/init.lua17
-rw-r--r--mesecons_microcontroller/init.lua128
-rw-r--r--mesecons_movestones/init.lua8
-rw-r--r--mesecons_pistons/init.lua27
-rw-r--r--mesecons_pressureplates/init.lua2
-rw-r--r--mesecons_receiver/init.lua169
-rw-r--r--mesecons_walllever/init.lua2
-rwxr-xr-x[-rw-r--r--]mesecons_wires/doc/mesecon/preview.pngbin29946 -> 29946 bytes
-rw-r--r--mesecons_wires/init.lua2
-rw-r--r--moretrees/node_defs.lua6
-rw-r--r--unified_inventory/api.lua2
-rw-r--r--worldedit_commands/wand.lua6
72 files changed, 5561 insertions, 1185 deletions
diff --git a/boost_cart/functions.lua b/boost_cart/functions.lua
index fcdd1ad..9876eb2 100644
--- a/boost_cart/functions.lua
+++ b/boost_cart/functions.lua
@@ -192,8 +192,8 @@ function boost_cart:boost_rail(pos, amount)
end
end
-function boost_cart:register_rail(name, def)
- local def_default = {
+function boost_cart:register_rail(name, def_overwrite)
+ local def = {
drawtype = "raillike",
paramtype = "light",
sunlight_propagates = true,
@@ -204,7 +204,7 @@ function boost_cart:register_rail(name, def)
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
}
}
- for k, v in pairs(def_default) do
+ for k, v in pairs(def_overwrite) do
def[k] = v
end
if not def.inventory_image then
diff --git a/colormachine/depends.txt b/colormachine/depends.txt
index deb2ecc..bd97bb5 100644
--- a/colormachine/depends.txt
+++ b/colormachine/depends.txt
@@ -1,15 +1,9 @@
dye
default?
unifieddyes?
-coloredwood?
-unifiedbricks?
-stained_glass?
cotton?
wool?
flags?
-blox?
-homedecor?
-plasticbox?
kerova?
hardenedclay?
clstone?
diff --git a/colormachine/init.lua b/colormachine/init.lua
index dceff54..6a61769 100644
--- a/colormachine/init.lua
+++ b/colormachine/init.lua
@@ -23,6 +23,9 @@
-- Version 0.6
-- Changelog:
+-- 08.02.17 Removed support for homedecor, blox, plasticbox, stainedglass, coloredwood and unifiedbricks
+-- as those now use a new feature of newer versions of MT that makes the colormachine
+-- obsolete for them.
-- 22.04.16 Added support for myfences: https://forum.minetest.net/viewtopic.php?f=9&t=14275
-- 28.09.15 Added support for cblocks: https://forum.minetest.net/viewtopic.php?f=9&t=13303
-- 23.05.15 As all dyes can be crafted into other dyes, only white dye is consumed - provided the
@@ -156,6 +159,7 @@ colormachine.data = {
-- the dyes as such
unifieddyes_ = { nr=1, modname='unifieddyes', shades={1,0,1,1,1,1,1,1}, grey_shades={1,1,1,1,1}, u=1, descr="ufdye", block="dye:white", add="", p=1 },
+--[[
-- coloredwood: sticks not supported (they are only craftitems)
coloredwood_wood_ = { nr=2, modname='coloredwood', shades={1,0,1,1,1,1,1,1}, grey_shades={1,1,1,1,1}, u=1, descr="planks", block="default:wood", add="wood_", p=2 },
coloredwood_fence_ = { nr=3, modname='coloredwood', shades={1,0,1,1,1,1,1,1}, grey_shades={1,1,1,1,1}, u=1, descr="fence", block="default:fence_wood", add="fence_", p=2},
@@ -165,6 +169,7 @@ colormachine.data = {
unifiedbricks_brickblock_ = { nr=5, modname='unifiedbricks', shades={1,0,1,1,1,1,1,1}, grey_shades={1,1,1,1,1}, u=1, descr="brick", block="default:brick", add="brickblock_",p=1},
-- the multicolored bricks come in fewer intensities (only 3 shades) and support only 3 insted of 5 shades of grey
unifiedbricks_multicolor_ = { nr=6, modname='unifiedbricks', shades={1,0,0,0,1,0,1,0}, grey_shades={0,1,1,1,0}, u=1, descr="mbrick", block="default:brick", add="multicolor_",p=1},
+--]]
hardenedclay_ = { nr=3.5, modname='hardenedclay', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="hclay", block="hardenedclay:hardened_clay_white", add="hardened_clay_", p=16},
colouredstonebricks_ = { nr=3.6, modname='colouredstonebricks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="cbrick", block="default:stonebrick", add="", p=1},
@@ -177,12 +182,14 @@ colormachine.data = {
colorcubes_window_ = { nr=3.93,modname='colorcubes', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="ccubew",block="default:stone", add="", p=1, obj_postfix='_window' },
+--[[
-- stained_glass: has a "faint" and "pastel" version as well (which are kind of additional shades used only by this mod)
-- no shades of grey for the glass
stained_glass_ = { nr=7, modname='stained_glass', shades={1,0,1,1,1,1,1,1}, grey_shades={0,0,0,0,0}, u=1, descr="glass", block="moreblocks:super_glow_glass", add="",p=2},
stained_glass_faint_ = { nr=8, modname='stained_glass', shades={0,0,1,0,0,0,0,0}, grey_shades={0,0,0,0,0}, u=1, descr="fglass", block="moreblocks:super_glow_glass", add="",p=2},
stained_glass_pastel_ = { nr=9, modname='stained_glass', shades={0,0,1,0,0,0,0,0}, grey_shades={0,0,0,0,0}, u=1, descr="pglass", block="moreblocks:super_glow_glass", add="",p=2},
+--]]
-- use 9.5 to insert it between stained glass and cotton
framedglass_ = { nr=9.5, modname='framedglass', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="fglass", block="framedglass:steel_framed_obsidian_glass", add="steel_framed_obsidian_glass",p=1},
@@ -215,6 +222,7 @@ colormachine.data = {
-- grey variants do not seem to exist, even though the textures arethere (perhaps nobody wants a grey flag!)
flags_ = { nr=17, modname='flags', shades={0,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=1, descr="flags", block="flags:white", add="", p=3 },
+--[[
blox_stone_ = { nr=18, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="SnBlox", block="default:stone", add="stone", p=2 },
blox_quarter_ = { nr=19, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="S4Blox", block="default:stone", add="quarter", p=4 },
blox_checker_ = { nr=20, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="S8Blox", block="default:stone", add="checker", p=4 },
@@ -261,8 +269,8 @@ colormachine.data = {
homedecor_bottle_ = { nr=16.66, modname='homedecor', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,0}, u=0, descr="hbottle", block="vessels:glass_bottle", add="bottle_", composed=1},
homedecor_welcome_mat_ = { nr=16.67, modname='homedecor', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,0,0}, u=0, descr="hwmat", block="homedecor:welcome_mat_grey", add="welcome_mat_", composed=1},
-
plasticbox_ = { nr=16.7, modname='plasticbox', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="plastic", block="plasticbox:plasticbox", add="plasticbox_",p=16},
+--]]
kerova_chest_front_ = { nr=16.8, modname='kerova', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="kerova", block="default:chest", add="chest_",p=16},
diff --git a/fake_fire/init.lua b/fake_fire/init.lua
index ffedce7..20cd442 100644
--- a/fake_fire/init.lua
+++ b/fake_fire/init.lua
@@ -155,12 +155,16 @@ minetest.register_node("fake_fire:embers", {
})
-- CHIMNEYS
-local materials = {"stone", "sandstone"}
+local materials = {
+ { "stone", S("Stone chimney top") },
+ { "sandstone", S("Sandstone chimney top") },
+}
-for _, m in ipairs(materials) do
- minetest.register_node("fake_fire:chimney_top_"..m, {
- description = "Chimney Top - "..m,
- tiles = {"default_"..m..".png^chimney_top.png", "default_"..m..".png"},
+for _, mat in ipairs(materials) do
+ local name, desc = unpack(mat)
+ minetest.register_node("fake_fire:chimney_top_"..name, {
+ description = desc,
+ tiles = {"default_"..name..".png^chimney_top.png", "default_"..name..".png"},
groups = {snappy=3},
paramtype = "light",
sounds = default.node_sound_stone_defaults(),
@@ -181,8 +185,8 @@ for _, m in ipairs(materials) do
minetest.register_craft({
type = "shapeless",
- output = 'fake_fire:chimney_top_'..m,
- recipe = {"default:torch", "stairs:slab_"..m}
+ output = 'fake_fire:chimney_top_'..name,
+ recipe = {"default:torch", "stairs:slab_"..name}
})
end
@@ -206,7 +210,7 @@ minetest.register_tool("fake_fire:flint_and_steel", {
minetest.set_node(pointed_thing.above, {name="fake_fire:fake_fire"})
end
else
- minetest.chat_send_player(user:get_player_name(), "This area is protected!")
+ minetest.chat_send_player(user:get_player_name(), S("This area is protected!"))
end
else
return
diff --git a/homedecor/clocks.lua b/homedecor/clocks.lua
index b2a594a..71d7ecd 100644
--- a/homedecor/clocks.lua
+++ b/homedecor/clocks.lua
@@ -1,25 +1,27 @@
+
+local S = homedecor_i18n.gettext
+
local clock_sbox = {
type = "fixed",
fixed = { -8/32, -8/32, 14/32, 8/32, 8/32, 16/32 }
}
local clock_materials = {
- { "plastic", "homedecor_generic_plastic.png" },
- { "wood", "default_wood.png" }
+ { "plastic", S("Plastic analog clock"), "homedecor_generic_plastic.png" },
+ { "wood", S("Wooden analog clock"), "default_wood.png" }
}
-for i in ipairs(clock_materials) do
- local m1 = clock_materials[i][1]
- local m2 = clock_materials[i][2]
- homedecor.register("analog_clock_"..m1, {
- description = "Analog clock ("..m1..")",
+for _, mat in ipairs(clock_materials) do
+ local name, desc, tex = unpack(mat)
+ homedecor.register("analog_clock_"..name, {
+ description = desc,
mesh = "homedecor_analog_clock.obj",
tiles = {
"homedecor_analog_clock_face.png",
- m2,
+ tex,
"homedecor_analog_clock_back.png"
},
- inventory_image = "homedecor_analog_clock_"..m1.."_inv.png",
+ inventory_image = "homedecor_analog_clock_"..name.."_inv.png",
walkable = false,
selection_box = clock_sbox,
groups = {snappy=3},
@@ -28,7 +30,7 @@ for i in ipairs(clock_materials) do
end
homedecor.register("digital_clock", {
- description = "Digital clock",
+ description = S("Digital clock"),
tiles = {
"homedecor_digital_clock_edges.png",
"homedecor_digital_clock_edges.png",
@@ -50,7 +52,7 @@ homedecor.register("digital_clock", {
})
homedecor.register("alarm_clock", {
- description = "Alarm clock",
+ description = S("Alarm clock"),
tiles = {
"homedecor_alarm_clock_top.png",
"homedecor_alarm_clock_bottom.png",
@@ -77,7 +79,7 @@ local gf_cbox = {
}
homedecor.register("grandfather_clock", {
- description = "Grandfather Clock",
+ description = S("Grandfather Clock"),
mesh = "homedecor_grandfather_clock.obj",
tiles = {
"default_glass.png",
diff --git a/homedecor/cobweb.lua b/homedecor/cobweb.lua
index 9731032..43b7794 100644
--- a/homedecor/cobweb.lua
+++ b/homedecor/cobweb.lua
@@ -1,5 +1,8 @@
+
+local S = homedecor_i18n.gettext
+
minetest.register_node("homedecor:cobweb_corner", {
- description = "Cobweb",
+ description = S("Cobweb"),
drawtype = "torchlike",
tiles = { "homedecor_cobweb_torchlike.png" },
inventory_image = "homedecor_cobweb.png",
@@ -23,7 +26,7 @@ minetest.register_node("homedecor:cobweb_corner", {
})
minetest.register_node("homedecor:cobweb_centered", {
- description = "Cobweb",
+ description = S("Cobweb"),
drawtype = "nodebox",
tiles = { "homedecor_cobweb.png" },
inventory_image = "homedecor_cobweb.png",
@@ -50,7 +53,7 @@ minetest.register_node("homedecor:cobweb_centered", {
})
minetest.register_node("homedecor:cobweb_flat", {
- description = "Cobweb",
+ description = S("Cobweb"),
drawtype = "nodebox",
tiles = { "homedecor_cobweb.png" },
inventory_image = "homedecor_cobweb.png",
@@ -77,7 +80,7 @@ minetest.register_node("homedecor:cobweb_flat", {
})
minetest.register_node("homedecor:cobweb_plantlike", {
- description = "Cobweb",
+ description = S("Cobweb"),
drawtype = "plantlike",
tiles = { "homedecor_cobweb_plantlike.png" },
inventory_image = "homedecor_cobweb.png",
diff --git a/homedecor/electrics.lua b/homedecor/electrics.lua
index 001c703..d8cfa93 100644
--- a/homedecor/electrics.lua
+++ b/homedecor/electrics.lua
@@ -1,5 +1,8 @@
+
+local S = homedecor_i18n.gettext
+
homedecor.register("power_outlet", {
- description = "Power Outlet",
+ description = S("Power Outlet"),
tiles = {
"homedecor_outlet_edges.png",
"homedecor_outlet_edges.png",
@@ -26,7 +29,7 @@ homedecor.register("power_outlet", {
})
homedecor.register("light_switch", {
- description = "Light switch",
+ description = S("Light switch"),
tiles = {
"homedecor_light_switch_edges.png",
"homedecor_light_switch_edges.png",
@@ -58,7 +61,7 @@ homedecor.register("light_switch", {
homedecor.register("doorbell", {
tiles = { "homedecor_doorbell.png" },
inventory_image = "homedecor_doorbell_inv.png",
- description = "Doorbell",
+ description = S("Doorbell"),
groups = {snappy=3},
walkable = false,
node_box = {
diff --git a/homedecor/foyer.lua b/homedecor/foyer.lua
index ad2d54a..c6fb401 100644
--- a/homedecor/foyer.lua
+++ b/homedecor/foyer.lua
@@ -1,8 +1,10 @@
+local S = homedecor_i18n.gettext
+
homedecor.register("coatrack_wallmount", {
tiles = { homedecor.plain_wood },
inventory_image = "homedecor_coatrack_wallmount_inv.png",
- description = "Coatrack (wallmounted)",
+ description = S("Wall-mounted coat rack"),
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
node_box = {
@@ -28,7 +30,7 @@ homedecor.register("coat_tree", {
"homedecor_generic_wood_old.png"
},
inventory_image = "homedecor_coatrack_inv.png",
- description = "Coat tree",
+ description = S("Coat tree"),
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
expand = { top="placeholder" },
@@ -40,9 +42,16 @@ homedecor.register("coat_tree", {
on_rotate = screwdriver.rotate_simple
})
-for _, color in pairs({ "green", "brown", "grey" }) do
+local mat_colors = {
+ { "green", S("Green welcome mat") },
+ { "brown", S("Brown welcome mat") },
+ { "grey", S("Grey welcome mat") },
+}
+
+for _, mat in ipairs(mat_colors) do
+ local color, desc = unpack(mat)
homedecor.register("welcome_mat_"..color, {
- description = "Welcome Mat ("..color..")",
+ description = desc,
tiles = {
"homedecor_welcome_mat_"..color..".png",
"homedecor_welcome_mat_bottom.png",
diff --git a/homedecor/gastronomy.lua b/homedecor/gastronomy.lua
index 052e526..b08ca5c 100644
--- a/homedecor/gastronomy.lua
+++ b/homedecor/gastronomy.lua
@@ -1,4 +1,6 @@
+local S = homedecor_i18n.gettext
+
local cutlery_cbox = {
type = "fixed",
fixed = {
@@ -12,7 +14,7 @@ homedecor.register("cutlery_set", {
mesh = "homedecor_cutlery_set.obj",
tiles = { "homedecor_cutlery_set.png" },
inventory_image = "homedecor_cutlery_set_inv.png",
- description = "Cutlery set",
+ description = S("Cutlery set"),
groups = {snappy=3},
selection_box = cutlery_cbox,
walkable = false,
@@ -33,14 +35,19 @@ local fbottle_cbox = {
}
}
-local bottle_colors = {"brown", "green"}
+local bottle_colors = {
+ { "brown", S("Brown bottle"), S("Four brown bottles") },
+ { "green", S("Green bottle"), S("Four green bottles") },
+}
for _, b in ipairs(bottle_colors) do
- homedecor.register("bottle_"..b, {
- tiles = { "homedecor_bottle_"..b..".png" },
- inventory_image = "homedecor_bottle_"..b.."_inv.png",
- description = "Bottle ("..b..")",
+ local name, desc, desc4 = unpack(b)
+
+ homedecor.register("bottle_"..name, {
+ tiles = { "homedecor_bottle_"..name..".png" },
+ inventory_image = "homedecor_bottle_"..name.."_inv.png",
+ description = desc,
mesh = "homedecor_bottle.obj",
walkable = false,
groups = {snappy=3},
@@ -50,13 +57,13 @@ for _, b in ipairs(bottle_colors) do
-- 4-bottle sets
- homedecor.register("4_bottles_"..b, {
+ homedecor.register("4_bottles_"..name, {
tiles = {
- "homedecor_bottle_"..b..".png",
- "homedecor_bottle_"..b..".png"
+ "homedecor_bottle_"..name..".png",
+ "homedecor_bottle_"..name..".png"
},
- inventory_image = "homedecor_4_bottles_"..b.."_inv.png",
- description = "Four "..b.." bottles",
+ inventory_image = "homedecor_4_bottles_"..name.."_inv.png",
+ description = desc4,
mesh = "homedecor_4_bottles.obj",
walkable = false,
groups = {snappy=3},
@@ -71,7 +78,7 @@ homedecor.register("4_bottles_multi", {
"homedecor_bottle_green.png"
},
inventory_image = "homedecor_4_bottles_multi_inv.png",
- description = "Four misc brown/green bottles",
+ description = S("Four misc brown/green bottles"),
mesh = "homedecor_4_bottles.obj",
groups = {snappy=3},
walkable = false,
@@ -81,7 +88,7 @@ homedecor.register("4_bottles_multi", {
local wine_cbox = homedecor.nodebox.slab_z(-0.75)
homedecor.register("wine_rack", {
- description = "Wine Rack",
+ description = S("Wine rack"),
mesh = "homedecor_wine_rack.obj",
tiles = {
"homedecor_generic_wood_red.png",
@@ -98,7 +105,7 @@ homedecor.register("wine_rack", {
})
homedecor.register("dartboard", {
- description = "Dartboard",
+ description = S("Dartboard"),
mesh = "homedecor_dartboard.obj",
tiles = { "homedecor_dartboard.png" },
inventory_image = "homedecor_dartboard_inv.png",
@@ -114,7 +121,7 @@ homedecor.register("dartboard", {
})
homedecor.register("beer_tap", {
- description = "Beer tap",
+ description = S("Beer tap"),
mesh = "homedecor_beer_taps.obj",
tiles = {
"homedecor_generic_metal_bright.png",
@@ -137,9 +144,11 @@ homedecor.register("beer_tap", {
wielditem:take_item()
puncher:set_wielded_item(wielditem)
inv:add_item("main", "homedecor:beer_mug 1")
- minetest.chat_send_player(puncher:get_player_name(), "Ahh, a frosty cold beer - look in your inventory for it!")
+ minetest.chat_send_player(puncher:get_player_name(),
+ S("Ahh, a frosty cold beer - look in your inventory for it!"))
else
- minetest.chat_send_player(puncher:get_player_name(), "No room in your inventory to add a beer mug!")
+ minetest.chat_send_player(puncher:get_player_name(),
+ S("No room in your inventory to add a beer mug!"))
end
end
end
@@ -160,7 +169,7 @@ local beer_cbox = {
}
homedecor.register("beer_mug", {
- description = "Beer mug",
+ description = S("Beer mug"),
drawtype = "mesh",
mesh = "homedecor_beer_mug.obj",
tiles = { "homedecor_beer_mug.png" },
@@ -178,7 +187,7 @@ local svm_cbox = {
}
homedecor.register("soda_machine", {
- description = "Soda Vending Machine",
+ description = S("Soda vending machine"),
mesh = "homedecor_soda_machine.obj",
tiles = {"homedecor_soda_machine.png"},
groups = {snappy=3},
@@ -201,7 +210,7 @@ homedecor.register("soda_machine", {
pos=pos, max_hear_distance = 5
})
else
- minetest.chat_send_player(puncher:get_player_name(), "Please insert a coin in the machine.")
+ minetest.chat_send_player(puncher:get_player_name(), S("Please insert a coin in the machine."))
end
end
})
diff --git a/homedecor/handlers/expansion.lua b/homedecor/handlers/expansion.lua
index b3e78c8..13c69f9 100644
--- a/homedecor/handlers/expansion.lua
+++ b/homedecor/handlers/expansion.lua
@@ -1,4 +1,6 @@
+local S = homedecor_i18n.gettext
+
-- vectors to place one node next to or behind another
homedecor.fdir_to_right = {
@@ -53,7 +55,7 @@ homedecor.wall_fdir_to_fwd = {
local placeholder_node = "homedecor:expansion_placeholder"
minetest.register_node(placeholder_node, {
- description = "Expansion placeholder (you hacker you!)",
+ description = S("Expansion placeholder (you hacker you!)"),
groups = { not_in_creative_inventory=1 },
drawtype = "airlike",
paramtype = "light",
@@ -193,13 +195,15 @@ function homedecor.bed_expansion(pos, placer, itemstack, pointed_thing, trybunks
local placer_name = placer:get_player_name()
if not (def and def.buildable_to) then
- minetest.chat_send_player( placer:get_player_name(), "Not enough room - the space for the headboard is occupied!" )
+ minetest.chat_send_player( placer:get_player_name(),
+ S("Not enough room - the space for the headboard is occupied!"))
minetest.set_node(pos, {name = "air"})
return true
end
if minetest.is_protected(forwardpos, placer_name) then
- minetest.chat_send_player( placer:get_player_name(), "Someone already owns the spot where the headboard goes." )
+ minetest.chat_send_player( placer:get_player_name(),
+ S("Someone already owns the spot where the headboard goes."))
return true
end
@@ -270,12 +274,12 @@ function homedecor.place_banister(itemstack, placer, pointed_thing)
local placer_name = placer:get_player_name()
if not (adef and adef.buildable_to) then
- minetest.chat_send_player(placer_name, "Not enough room - the upper space is occupied!" )
+ minetest.chat_send_player(placer_name, S("Not enough room - the upper space is occupied!" ))
return itemstack
end
if minetest.is_protected(abovepos, placer_name) then
- minetest.chat_send_player(placer_name, "Someone already owns that spot." )
+ minetest.chat_send_player(placer_name, S("Someone already owns that spot."))
return itemstack
end
diff --git a/homedecor/kitchen_furniture.lua b/homedecor/kitchen_furniture.lua
index d0712cf..2ecb7bf 100644
--- a/homedecor/kitchen_furniture.lua
+++ b/homedecor/kitchen_furniture.lua
@@ -96,7 +96,7 @@ local cp_cbox = {
}
homedecor.register("copper_pans", {
- description = "Copper pans",
+ description = S("Copper pans"),
mesh = "homedecor_copper_pans.obj",
tiles = { "homedecor_polished_copper.png" },
inventory_image = "homedecor_copper_pans_inv.png",
@@ -115,7 +115,7 @@ homedecor.register("kitchen_faucet", {
mesh = "homedecor_kitchen_faucet.obj",
tiles = { "homedecor_generic_metal_bright.png" },
inventory_image = "homedecor_kitchen_faucet_inv.png",
- description = "Kitchen Faucet",
+ description = S("Kitchen Faucet"),
groups = {snappy=3},
selection_box = kf_cbox,
walkable = false,
diff --git a/homedecor/lighting.lua b/homedecor/lighting.lua
index 0a1edaf..f7314d0 100644
--- a/homedecor/lighting.lua
+++ b/homedecor/lighting.lua
@@ -331,7 +331,7 @@ homedecor.register("ceiling_lantern", {
tiles = { "homedecor_light.png", "homedecor_generic_metal_wrought_iron.png" },
use_texture_alpha = true,
inventory_image = "homedecor_ceiling_lantern_inv.png",
- description = "Ceiling Lantern",
+ description = S("Ceiling Lantern"),
groups = {snappy=3},
light_source = 11,
selection_box = cl_cbox,
diff --git a/homedecor/office.lua b/homedecor/office.lua
index b28c3a3..6e9bbc1 100644
--- a/homedecor/office.lua
+++ b/homedecor/office.lua
@@ -23,7 +23,7 @@ local desk_cbox = {
fixed = { -0.5, -0.5, -0.5, 1.5, 0.5, 0.5 }
}
homedecor.register("desk", {
- description = "Desk",
+ description = S("Desk"),
mesh = "homedecor_desk.obj",
tiles = {
homedecor.plain_wood,
@@ -49,7 +49,7 @@ local globe_cbox = {
}
homedecor.register("desk_globe", {
- description = "Desk globe",
+ description = S("Desk globe"),
mesh = "homedecor_desk_globe.obj",
tiles = {
"homedecor_generic_wood_red.png",
@@ -65,7 +65,7 @@ homedecor.register("desk_globe", {
})
homedecor.register("calendar", {
- description = "Calendar",
+ description = S("Calendar"),
mesh = "homedecor_calendar.obj",
tiles = {"homedecor_calendar.png"},
inventory_image = "homedecor_calendar_inv.png",
@@ -81,11 +81,11 @@ homedecor.register("calendar", {
groups = {choppy=2,attached_node=1},
legacy_wallmounted = true,
sounds = default.node_sound_defaults(),
- infotext = "Date (right-click to update):\n" .. os.date("%Y-%m-%d"), -- ISO 8601 format
+ infotext = S("Date (right-click to update):\n@1", os.date("%Y-%m-%d")), -- ISO 8601 format
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local meta = minetest.get_meta(pos)
local date = os.date("%Y-%m-%d")
- meta:set_string("infotext", "Date (right-click to update):\n"..date)
+ meta:set_string("infotext", S("Date (right-click to update):\n@1", date))
return itemstack
end
})
@@ -104,12 +104,18 @@ local ofchairs_cbox = {
}
}
-for _, c in pairs({"basic", "upscale"}) do
- homedecor.register("office_chair_"..c, {
- description = "Office chair ("..c..")",
+local chairs = {
+ { "basic", S("Basic office chair") },
+ { "upscale", S("Upscale office chair") },
+}
+
+for _, c in pairs(chairs) do
+ local name, desc = unpack(c)
+ homedecor.register("office_chair_"..name, {
+ description = desc,
drawtype = "mesh",
- tiles = { "homedecor_office_chair_"..c..".png" },
- mesh = "homedecor_office_chair_"..c..".obj",
+ tiles = { "homedecor_office_chair_"..name..".png" },
+ mesh = "homedecor_office_chair_"..name..".obj",
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
selection_box = ofchairs_sbox,
diff --git a/homedecor/trash_cans.lua b/homedecor/trash_cans.lua
index 5405700..7da6c04 100644
--- a/homedecor/trash_cans.lua
+++ b/homedecor/trash_cans.lua
@@ -1,4 +1,6 @@
+local S = homedecor_i18n.gettext
+
local tg_cbox = {
type = "fixed",
fixed = { -0.35, -0.5, -0.35, 0.35, 0.4, 0.35 }
@@ -9,7 +11,7 @@ homedecor.register("trash_can_green", {
mesh = "homedecor_trash_can_green.obj",
tiles = { "homedecor_pool_table_baize.png" },
inventory_image = "homedecor_trash_can_green_inv.png",
- description = "Trash Can (green)",
+ description = S("Green Trash Can"),
groups = {snappy=3},
selection_box = tg_cbox,
collision_box = tg_cbox,
@@ -29,7 +31,7 @@ homedecor.register("trash_can_green_open", {
on_punch = function(pos, node, puncher, pointed_thing)
minetest.set_node(pos, {name = "homedecor:trash_can_green", param2 = node.param2})
end,
- infotext="Trash Can",
+ infotext=S("Trash Can"),
inventory= {
size = 9,
formspec = "size[8,9]" .. default.gui_bg .. default.gui_bg_img .. default.gui_slots ..
@@ -57,7 +59,7 @@ homedecor.register("trash_can", {
mesh = "homedecor_trash_can.obj",
tiles = { "homedecor_trash_can.png" },
inventory_image = "homedecor_trash_can_inv.png",
- description = "Trash Can (small)",
+ description = S("Small Trash Can"),
groups = {snappy=3},
selection_box = trash_cbox,
collision_box = trash_cbox,
diff --git a/homedecor/wardrobe.lua b/homedecor/wardrobe.lua
index 986eed5..d0e3538 100644
--- a/homedecor/wardrobe.lua
+++ b/homedecor/wardrobe.lua
@@ -1,4 +1,6 @@
+local S = homedecor_i18n.gettext
+
local wd_cbox = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, 1.5, 0.5 }
@@ -12,14 +14,14 @@ homedecor.register("wardrobe", {
"homedecor_wardrobe_doors.png"
},
inventory_image = "homedecor_wardrobe_inv.png",
- description = "Wardrobe",
+ description = S("Wardrobe"),
groups = {snappy=3},
selection_box = wd_cbox,
collision_box = wd_cbox,
sounds = default.node_sound_wood_defaults(),
expand = { top="placeholder" },
on_rotate = screwdriver.rotate_simple,
- infotext = "Wardrobe",
+ infotext = S("Wardrobe"),
inventory = {
size = 10
},
@@ -34,9 +36,9 @@ homedecor.register("wardrobe", {
"image_button_exit["..(i-1)..".5,2;1.1,2;homedecor_clothes_fe"..skins[i].."_preview.png;fe"..skins[i]..";]"
end
meta:set_string("formspec", "size[5.5,8.5]"..default.gui_bg..default.gui_bg_img..default.gui_slots..
- "vertlabel[0,0.5;CLOTHES]"..
+ "vertlabel[0,0.5;"..minetest.formspec_escape(S("Clothes")).."]"..
clothes_strings..
- "vertlabel[0,5.2;STORAGE]"..
+ "vertlabel[0,5.2;"..minetest.formspec_escape(S("Storage")).."]"..
"list[current_name;main;0.5,4.5;5,2;]"..
"list[current_player;main;0.5,6.8;5,2;]" ..
"listring[]")
diff --git a/homedecor_i18n/locale/de.po b/homedecor_i18n/locale/de.po
index ad927d0..7d1f2dd 100644
--- a/homedecor_i18n/locale/de.po
+++ b/homedecor_i18n/locale/de.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-01-30 21:31-0300\n"
+"POT-Creation-Date: 2017-02-10 05:34-0300\n"
"PO-Revision-Date: 2017-01-25 00:03-0300\n"
"Last-Translator: Xanthin <Xanthin@users.noreply.github.com>\n"
"Language-Team: German\n"
@@ -288,7 +288,7 @@ msgstr ""
msgid "Loaded!"
msgstr "Geladen!"
-#: ../lrfurn/armchairs.lua
+#: ../lrfurn/armchairs.lua ../homedecor/furniture.lua
#, fuzzy
msgid "Armchair"
msgstr "Sessel (%s)"
@@ -328,98 +328,31 @@ msgid "Glowing Embers"
msgstr ""
#: ../fake_fire/init.lua
-msgid "Flint and steel"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
-#: ../homedecor/misc-nodes.lua ../homedecor/furniture.lua
-#, fuzzy
-msgid "black"
-msgstr "schwarz"
-
-#: ../homedecor/bedroom.lua ../homedecor/books.lua
-msgid "brown"
+msgid "Stone chimney top"
msgstr ""
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/books.lua ../homedecor/furniture.lua
-#, fuzzy
-msgid "blue"
-msgstr "blau"
-
-#: ../homedecor/bedroom.lua
-msgid "cyan"
+#: ../fake_fire/init.lua
+msgid "Sandstone chimney top"
msgstr ""
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
-#, fuzzy
-msgid "dark grey"
-msgstr "dunkelgruen"
-
-#: ../homedecor/bedroom.lua ../homedecor/furniture.lua
-#, fuzzy
-msgid "dark green"
-msgstr "dunkelgruen"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/exterior.lua
-#: ../homedecor/misc-nodes.lua ../homedecor/books.lua
-#, fuzzy
-msgid "green"
-msgstr "gruen"
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua ../homedecor/books.lua
-msgid "grey"
+#: ../fake_fire/init.lua
+msgid "Flint and steel"
msgstr ""
-#: ../homedecor/bedroom.lua
-msgid "magenta"
+#: ../fake_fire/init.lua
+msgid "This area is protected!"
msgstr ""
#: ../homedecor/bedroom.lua
-msgid "orange"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/furniture.lua
-#, fuzzy
-msgid "pink"
-msgstr "rosa"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua
-#: ../homedecor/exterior.lua ../homedecor/books.lua ../homedecor/furniture.lua
#, fuzzy
-msgid "red"
+msgid "Bed"
msgstr "rot"
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua ../homedecor/books.lua
-#: ../homedecor/furniture.lua
-#, fuzzy
-msgid "violet"
-msgstr "violett"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua
-#, fuzzy
-msgid "white"
-msgstr "weiss"
-
-#: ../homedecor/bedroom.lua ../homedecor/lighting.lua ../homedecor/shutters.lua
-#: ../homedecor/exterior.lua
-msgid "yellow"
-msgstr ""
-
#: ../homedecor/bedroom.lua
-msgid "Bed (@1)"
+msgid "Bed (king sized)"
msgstr ""
#: ../homedecor/bedroom.lua
-msgid "Bed (@1, king sized)"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
msgid "mahogany"
msgstr ""
@@ -485,6 +418,15 @@ msgid "Under-sink cabinet"
msgstr "Unterschrank"
#: ../homedecor/kitchen_furniture.lua
+msgid "Copper pans"
+msgstr ""
+
+#: ../homedecor/kitchen_furniture.lua
+#, fuzzy
+msgid "Kitchen Faucet"
+msgstr "Kuechenschrank"
+
+#: ../homedecor/kitchen_furniture.lua
msgid "Paper towels"
msgstr ""
@@ -617,6 +559,18 @@ msgstr "Asphaltschindeln"
msgid "Chimney"
msgstr ""
+#: ../homedecor/electrics.lua
+msgid "Power Outlet"
+msgstr ""
+
+#: ../homedecor/electrics.lua
+msgid "Light switch"
+msgstr ""
+
+#: ../homedecor/electrics.lua
+msgid "Doorbell"
+msgstr ""
+
#: ../homedecor/window_treatments.lua
msgid "Window (quartered)"
msgstr ""
@@ -664,6 +618,38 @@ msgstr ""
msgid "Stained Glass"
msgstr ""
+#: ../homedecor/window_treatments.lua ../homedecor/exterior.lua
+#: ../homedecor/furniture.lua
+#, fuzzy
+msgid "red"
+msgstr "rot"
+
+#: ../homedecor/window_treatments.lua ../homedecor/exterior.lua
+#: ../homedecor/misc-nodes.lua
+#, fuzzy
+msgid "green"
+msgstr "gruen"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+#, fuzzy
+msgid "blue"
+msgstr "blau"
+
+#: ../homedecor/window_treatments.lua ../homedecor/lighting.lua
+#, fuzzy
+msgid "white"
+msgstr "weiss"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+#, fuzzy
+msgid "pink"
+msgstr "rosa"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+#, fuzzy
+msgid "violet"
+msgstr "violett"
+
#: ../homedecor/crafts.lua
#, fuzzy
msgid "Uncooked Terracotta Base"
@@ -816,6 +802,34 @@ msgstr ""
msgid "Telephone"
msgstr ""
+#: ../homedecor/cobweb.lua
+msgid "Cobweb"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Plastic analog clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Wooden analog clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Digital clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Alarm clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Grandfather Clock"
+msgstr ""
+
+#: ../homedecor/lighting.lua ../homedecor/exterior.lua
+msgid "yellow"
+msgstr ""
+
#: ../homedecor/lighting.lua
#, fuzzy
msgid "Thick Glowlight"
@@ -877,6 +891,11 @@ msgid "Hanging Lantern"
msgstr ""
#: ../homedecor/lighting.lua
+#, fuzzy
+msgid "Ceiling Lantern"
+msgstr "Unterschrank"
+
+#: ../homedecor/lighting.lua
msgid "Lattice lantern (large)"
msgstr ""
@@ -894,8 +913,9 @@ msgid "Standing Lamp"
msgstr ""
#: ../homedecor/lighting.lua
-msgid "Desk Lamp (@1)"
-msgstr ""
+#, fuzzy
+msgid "Desk Lamp"
+msgstr "Tischlampe"
#: ../homedecor/lighting.lua
msgid "Ceiling Lamp"
@@ -976,21 +996,8 @@ msgid "Wrought Iron fence (type 2) Corner"
msgstr "Schmiedeeiserner Zaun/Gelaender"
#: ../homedecor/shutters.lua
-msgid "unpainted oak"
-msgstr ""
-
-#: ../homedecor/shutters.lua
-msgid "forest green"
-msgstr ""
-
-#: ../homedecor/shutters.lua
-#, fuzzy
-msgid "light blue"
-msgstr "rechts"
-
-#: ../homedecor/shutters.lua
#, fuzzy
-msgid "Wooden Shutter (@1)"
+msgid "Wooden Shutter"
msgstr "Holzjalousie (rot)"
#: ../homedecor/exterior.lua
@@ -1108,6 +1115,86 @@ msgstr ""
msgid "Radiator heater"
msgstr ""
+#: ../homedecor/wardrobe.lua
+msgid "Wardrobe"
+msgstr ""
+
+#: ../homedecor/wardrobe.lua
+msgid "Clothes"
+msgstr ""
+
+#: ../homedecor/wardrobe.lua
+msgid "Storage"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+msgid "Green Trash Can"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+msgid "Trash Can"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+msgid "Small Trash Can"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Cutlery set"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Brown bottle"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four brown bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Green bottle"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four green bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four misc brown/green bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Wine rack"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Dartboard"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Beer tap"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Ahh, a frosty cold beer - look in your inventory for it!"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "No room in your inventory to add a beer mug!"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Beer mug"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Soda vending machine"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Please insert a coin in the machine."
+msgstr ""
+
#: ../homedecor/doors_and_gates.lua
#, fuzzy
msgid "Mahogany Closet Door (@1 opening)"
@@ -1215,6 +1302,26 @@ msgstr ""
msgid "Japanese-style door"
msgstr ""
+#: ../homedecor/foyer.lua
+msgid "Wall-mounted coat rack"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Coat tree"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Green welcome mat"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Brown welcome mat"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Grey welcome mat"
+msgstr ""
+
#: ../homedecor/misc-nodes.lua
#, fuzzy
msgid "Textured Ceiling Paint"
@@ -1241,6 +1348,11 @@ msgstr ""
msgid "Rug (@1)"
msgstr ""
+#: ../homedecor/misc-nodes.lua ../homedecor/furniture.lua
+#, fuzzy
+msgid "black"
+msgstr "schwarz"
+
#: ../homedecor/misc-nodes.lua
msgid "Flower Pot (@1)"
msgstr ""
@@ -1408,7 +1520,7 @@ msgid "Legs for Utility Table"
msgstr "Tischbeine fuer Arbeitsplatte"
#: ../homedecor/books.lua
-msgid "Writable Book (@1)"
+msgid "Writable Book"
msgstr ""
#: ../homedecor/books.lua
@@ -1436,13 +1548,13 @@ msgstr ""
#: ../homedecor/furniture.lua
#, fuzzy
-msgid "Kitchen chair (@1)"
-msgstr "Kuechenschrank"
+msgid "dark green"
+msgstr "dunkelgruen"
#: ../homedecor/furniture.lua
#, fuzzy
-msgid "Armchair (@1)"
-msgstr "Sessel (%s)"
+msgid "Kitchen chair"
+msgstr "Kuechenschrank"
#: ../homedecor/furniture.lua
msgid "Bookshelf (open-frame)"
@@ -1480,6 +1592,27 @@ msgstr "%s versuchte Zugang zu %s von %s zu bekommen bei %s"
msgid "@1 (Locked)"
msgstr "%s (verschlossen)"
+#: ../homedecor/handlers/expansion.lua
+msgid "Expansion placeholder (you hacker you!)"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Not enough room - the space for the headboard is occupied!"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Someone already owns the spot where the headboard goes."
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Not enough room - the upper space is occupied!"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+#, fuzzy
+msgid "Someone already owns that spot."
+msgstr "Tut mir leid, %s gehoert diese Stelle."
+
#: ../homedecor/handlers/furnaces.lua
msgid "Furnace"
msgstr ""
@@ -1512,48 +1645,43 @@ msgstr ": Produktfelder sind voll"
msgid "Filing cabinet"
msgstr "Unterschrank"
-#: ../homedecor/bathroom_furniture.lua
+#: ../homedecor/office.lua
#, fuzzy
-msgid "white/grey"
-msgstr "weiss"
+msgid "Desk"
+msgstr "Tischlampe"
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/dark grey"
+#: ../homedecor/office.lua
+msgid "Desk globe"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/black"
+#: ../homedecor/office.lua
+msgid "Calendar"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "black/dark grey"
+#: ../homedecor/office.lua
+msgid ""
+"Date (right-click to update):\n"
+"@1"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-#, fuzzy
-msgid "white/red"
-msgstr "weiss"
-
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/green"
+#: ../homedecor/office.lua
+msgid "Basic office chair"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-#, fuzzy
-msgid "white/blue"
-msgstr "weiss"
+#: ../homedecor/office.lua
+msgid "Upscale office chair"
+msgstr ""
#: ../homedecor/bathroom_furniture.lua
-msgid "white/yellow"
+msgid "Bathroom/kitchen tiles (dark)"
msgstr ""
#: ../homedecor/bathroom_furniture.lua
-#, fuzzy
-msgid "white/tan"
-msgstr "weiss"
+msgid "Bathroom/kitchen tiles (medium)"
+msgstr ""
#: ../homedecor/bathroom_furniture.lua
-msgid "Bathroom/kitchen tiles (@1)"
+msgid "Bathroom/kitchen tiles (light)"
msgstr ""
#: ../homedecor/bathroom_furniture.lua
@@ -1566,6 +1694,34 @@ msgid "Medicine cabinet"
msgstr "Unterschrank"
#, fuzzy
+#~ msgid "white/grey"
+#~ msgstr "weiss"
+
+#, fuzzy
+#~ msgid "white/red"
+#~ msgstr "weiss"
+
+#, fuzzy
+#~ msgid "white/blue"
+#~ msgstr "weiss"
+
+#, fuzzy
+#~ msgid "white/tan"
+#~ msgstr "weiss"
+
+#, fuzzy
+#~ msgid "dark grey"
+#~ msgstr "dunkelgruen"
+
+#, fuzzy
+#~ msgid "light blue"
+#~ msgstr "rechts"
+
+#, fuzzy
+#~ msgid "Armchair (@1)"
+#~ msgstr "Sessel (%s)"
+
+#, fuzzy
#~ msgid "dark_grey"
#~ msgstr "dunkelgruen"
@@ -1697,9 +1853,6 @@ msgstr "Unterschrank"
#~ msgid "someone "
#~ msgstr "jemand"
-#~ msgid "Sorry, %s owns that spot. "
-#~ msgstr "Tut mir leid, %s gehoert diese Stelle."
-
#~ msgid "White Glowlight (small cube) "
#~ msgstr "Weisse Gluehlampe (kleiner Wuerfel)"
diff --git a/homedecor_i18n/locale/es.po b/homedecor_i18n/locale/es.po
index 5c52b50..75944ad 100644
--- a/homedecor_i18n/locale/es.po
+++ b/homedecor_i18n/locale/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-01-30 21:31-0300\n"
+"POT-Creation-Date: 2017-02-10 05:34-0300\n"
"PO-Revision-Date: 2017-01-24 20:24-0300\n"
"Last-Translator: Diego Martínez <kaeza@users.noreply.github.com>\n"
"Language-Team: Spanish\n"
@@ -276,7 +276,7 @@ msgstr "¡No hay lugar para colocar el sofá!"
msgid "Loaded!"
msgstr "¡Cargado!"
-#: ../lrfurn/armchairs.lua
+#: ../lrfurn/armchairs.lua ../homedecor/furniture.lua
msgid "Armchair"
msgstr "Sillón"
@@ -313,89 +313,30 @@ msgid "Glowing Embers"
msgstr "Brasas ardientes"
#: ../fake_fire/init.lua
-msgid "Flint and steel"
-msgstr "Pedernal y acero"
+msgid "Stone chimney top"
+msgstr "Chimenea de piedra"
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
-#: ../homedecor/misc-nodes.lua ../homedecor/furniture.lua
-msgid "black"
-msgstr "negra"
+#: ../fake_fire/init.lua
+msgid "Sandstone chimney top"
+msgstr "Chimenea de arenisca"
-#: ../homedecor/bedroom.lua ../homedecor/books.lua
-msgid "brown"
-msgstr "marrón"
+#: ../fake_fire/init.lua
+msgid "Flint and steel"
+msgstr "Pedernal y acero"
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/books.lua ../homedecor/furniture.lua
-msgid "blue"
-msgstr "azul"
+#: ../fake_fire/init.lua
+msgid "This area is protected!"
+msgstr "¡Ésta área está protegida!"
#: ../homedecor/bedroom.lua
-msgid "cyan"
-msgstr "cian"
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
-msgid "dark grey"
-msgstr "gris oscuro"
-
-#: ../homedecor/bedroom.lua ../homedecor/furniture.lua
-msgid "dark green"
-msgstr "verde oscuro"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/exterior.lua
-#: ../homedecor/misc-nodes.lua ../homedecor/books.lua
-msgid "green"
-msgstr "verde"
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua ../homedecor/books.lua
-msgid "grey"
-msgstr "gris"
+msgid "Bed"
+msgstr "Cama"
#: ../homedecor/bedroom.lua
-msgid "magenta"
-msgstr "magenta"
+msgid "Bed (king sized)"
+msgstr "Cama (tamaño grande)"
#: ../homedecor/bedroom.lua
-msgid "orange"
-msgstr "naranja"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/furniture.lua
-msgid "pink"
-msgstr "rosa"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua
-#: ../homedecor/exterior.lua ../homedecor/books.lua ../homedecor/furniture.lua
-msgid "red"
-msgstr "roja"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua ../homedecor/books.lua
-#: ../homedecor/furniture.lua
-msgid "violet"
-msgstr "violeta"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua
-msgid "white"
-msgstr "blanca"
-
-#: ../homedecor/bedroom.lua ../homedecor/lighting.lua ../homedecor/shutters.lua
-#: ../homedecor/exterior.lua
-msgid "yellow"
-msgstr "amarilla"
-
-#: ../homedecor/bedroom.lua
-msgid "Bed (@1)"
-msgstr "Cama (@1)"
-
-#: ../homedecor/bedroom.lua
-msgid "Bed (@1, king sized)"
-msgstr "Cama (@1, tamaño rey)"
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
msgid "mahogany"
msgstr "caoba"
@@ -452,6 +393,14 @@ msgid "Under-sink cabinet"
msgstr "Gabinete bajo lavabo"
#: ../homedecor/kitchen_furniture.lua
+msgid "Copper pans"
+msgstr "Sartenes de cobre"
+
+#: ../homedecor/kitchen_furniture.lua
+msgid "Kitchen Faucet"
+msgstr "Grifo de cocina"
+
+#: ../homedecor/kitchen_furniture.lua
msgid "Paper towels"
msgstr "Toallas de papel"
@@ -565,6 +514,18 @@ msgstr "Claraboya de cristal"
msgid "Chimney"
msgstr "Chimenea"
+#: ../homedecor/electrics.lua
+msgid "Power Outlet"
+msgstr "Toma de corriente"
+
+#: ../homedecor/electrics.lua
+msgid "Light switch"
+msgstr "Interruptor de luz"
+
+#: ../homedecor/electrics.lua
+msgid "Doorbell"
+msgstr "Timbre"
+
#: ../homedecor/window_treatments.lua
msgid "Window (quartered)"
msgstr "Ventana (cuarteada)"
@@ -583,7 +544,7 @@ msgstr "Persianas (finas)"
#: ../homedecor/window_treatments.lua
msgid "Curtains"
-msgstr "Cortinas (@1)"
+msgstr "Cortinas"
#: ../homedecor/window_treatments.lua ../homedecor/fences.lua
#: ../homedecor/misc-nodes.lua ../homedecor/tables.lua
@@ -607,6 +568,32 @@ msgstr "Caja de flores de ventana"
msgid "Stained Glass"
msgstr "Vídrio coloreado"
+#: ../homedecor/window_treatments.lua ../homedecor/exterior.lua
+#: ../homedecor/furniture.lua
+msgid "red"
+msgstr "roja"
+
+#: ../homedecor/window_treatments.lua ../homedecor/exterior.lua
+#: ../homedecor/misc-nodes.lua
+msgid "green"
+msgstr "verde"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+msgid "blue"
+msgstr "azul"
+
+#: ../homedecor/window_treatments.lua ../homedecor/lighting.lua
+msgid "white"
+msgstr "blanca"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+msgid "pink"
+msgstr "rosa"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+msgid "violet"
+msgstr "violeta"
+
#: ../homedecor/crafts.lua
msgid "Uncooked Terracotta Base"
msgstr "Base de terracota sin cocer"
@@ -743,17 +730,45 @@ msgstr "DVD y reproductor de vídeo"
msgid "Telephone"
msgstr "Teléfono"
+#: ../homedecor/cobweb.lua
+msgid "Cobweb"
+msgstr "Telaraña"
+
+#: ../homedecor/clocks.lua
+msgid "Plastic analog clock"
+msgstr "Reloj análogo de plástico"
+
+#: ../homedecor/clocks.lua
+msgid "Wooden analog clock"
+msgstr "Reloj análogo de madera"
+
+#: ../homedecor/clocks.lua
+msgid "Digital clock"
+msgstr "Reloj digital"
+
+#: ../homedecor/clocks.lua
+msgid "Alarm clock"
+msgstr "Reloj de alarma"
+
+#: ../homedecor/clocks.lua
+msgid "Grandfather Clock"
+msgstr "Reloj de péndulo"
+
+#: ../homedecor/lighting.lua ../homedecor/exterior.lua
+msgid "yellow"
+msgstr "amarilla"
+
#: ../homedecor/lighting.lua
msgid "Thick Glowlight"
-msgstr "Luz brillante gruesa (@1)"
+msgstr "Luz brillante gruesa"
#: ../homedecor/lighting.lua
msgid "Thin Glowlight"
-msgstr "Luz brillante fina (@1)"
+msgstr "Luz brillante fina"
#: ../homedecor/lighting.lua
msgid "Small Glowlight Cube"
-msgstr "Cubo pequeño de luz brillante (@1)"
+msgstr "Cubo pequeño de luz brillante"
#: ../homedecor/lighting.lua
msgid "Plasma Lamp"
@@ -800,6 +815,10 @@ msgid "Hanging Lantern"
msgstr "Linterna colgante"
#: ../homedecor/lighting.lua
+msgid "Ceiling Lantern"
+msgstr "Linterna de techo"
+
+#: ../homedecor/lighting.lua
msgid "Lattice lantern (large)"
msgstr "Linterna enrejada (grande)"
@@ -809,15 +828,15 @@ msgstr "Linterna enrejada (pequeña)"
#: ../homedecor/lighting.lua
msgid "Table Lamp"
-msgstr "Lámpara de mesa (@1)"
+msgstr "Lámpara de mesa"
#: ../homedecor/lighting.lua
msgid "Standing Lamp"
msgstr "Lámpara de pié"
#: ../homedecor/lighting.lua
-msgid "Desk Lamp (@1)"
-msgstr "Lámpara de escritorio (@1)"
+msgid "Desk Lamp"
+msgstr "Lámpara de escritorio"
#: ../homedecor/lighting.lua
msgid "Ceiling Lamp"
@@ -884,20 +903,8 @@ msgid "Wrought Iron fence (type 2) Corner"
msgstr "Esquina de cerca de hierro forjado (tipo 2)"
#: ../homedecor/shutters.lua
-msgid "unpainted oak"
-msgstr "roble sin pintar"
-
-#: ../homedecor/shutters.lua
-msgid "forest green"
-msgstr "verde bosque"
-
-#: ../homedecor/shutters.lua
-msgid "light blue"
-msgstr "azul claro"
-
-#: ../homedecor/shutters.lua
-msgid "Wooden Shutter (@1)"
-msgstr "Postigo de madera (@1)"
+msgid "Wooden Shutter"
+msgstr "Postigo de madera"
#: ../homedecor/exterior.lua
msgid "Barbecue"
@@ -1007,6 +1014,86 @@ msgstr "Calentador de espacios"
msgid "Radiator heater"
msgstr "Radiador"
+#: ../homedecor/wardrobe.lua
+msgid "Wardrobe"
+msgstr "Guardarropa"
+
+#: ../homedecor/wardrobe.lua
+msgid "Clothes"
+msgstr "Ropa"
+
+#: ../homedecor/wardrobe.lua
+msgid "Storage"
+msgstr "Almacenamiento"
+
+#: ../homedecor/trash_cans.lua
+msgid "Green Trash Can"
+msgstr "Bote de basura verde"
+
+#: ../homedecor/trash_cans.lua
+msgid "Trash Can"
+msgstr "Bote de basura"
+
+#: ../homedecor/trash_cans.lua
+msgid "Small Trash Can"
+msgstr "Bote de basura pequeño"
+
+#: ../homedecor/gastronomy.lua
+msgid "Cutlery set"
+msgstr "Cubertería"
+
+#: ../homedecor/gastronomy.lua
+msgid "Brown bottle"
+msgstr "Botella marrón"
+
+#: ../homedecor/gastronomy.lua
+msgid "Four brown bottles"
+msgstr "Cuatro botellas marrones"
+
+#: ../homedecor/gastronomy.lua
+msgid "Green bottle"
+msgstr "Botella verde"
+
+#: ../homedecor/gastronomy.lua
+msgid "Four green bottles"
+msgstr "Cuatro botellas verdes"
+
+#: ../homedecor/gastronomy.lua
+msgid "Four misc brown/green bottles"
+msgstr "Cuatro botellas verdes/marrones"
+
+#: ../homedecor/gastronomy.lua
+msgid "Wine rack"
+msgstr "Estantería de vino"
+
+#: ../homedecor/gastronomy.lua
+msgid "Dartboard"
+msgstr "Diana"
+
+#: ../homedecor/gastronomy.lua
+msgid "Beer tap"
+msgstr "Grifo de cerveza"
+
+#: ../homedecor/gastronomy.lua
+msgid "Ahh, a frosty cold beer - look in your inventory for it!"
+msgstr "¡Ah, una cerveza fría! La encontrarás en tu inventario."
+
+#: ../homedecor/gastronomy.lua
+msgid "No room in your inventory to add a beer mug!"
+msgstr "¡No hay lugar para tomar una jarra de cerveza!"
+
+#: ../homedecor/gastronomy.lua
+msgid "Beer mug"
+msgstr "Jarra de cerveza"
+
+#: ../homedecor/gastronomy.lua
+msgid "Soda vending machine"
+msgstr "Máquina expendedora de refrescos"
+
+#: ../homedecor/gastronomy.lua
+msgid "Please insert a coin in the machine."
+msgstr "Por favor introduzca una moneda en la máquina."
+
#: ../homedecor/doors_and_gates.lua
msgid "Mahogany Closet Door (@1 opening)"
msgstr "Puerta de armario de caoba (abre a la @1)"
@@ -1099,6 +1186,26 @@ msgstr "Tatami"
msgid "Japanese-style door"
msgstr "Puerta estilo japonés"
+#: ../homedecor/foyer.lua
+msgid "Wall-mounted coat rack"
+msgstr "Perchero de pared"
+
+#: ../homedecor/foyer.lua
+msgid "Coat tree"
+msgstr "Perchero de piso"
+
+#: ../homedecor/foyer.lua
+msgid "Green welcome mat"
+msgstr "Tapete verde de bienvenida"
+
+#: ../homedecor/foyer.lua
+msgid "Brown welcome mat"
+msgstr "Tapete marrón de bienvenida"
+
+#: ../homedecor/foyer.lua
+msgid "Grey welcome mat"
+msgstr "Tapete gris de bienvenida"
+
#: ../homedecor/misc-nodes.lua
msgid "Textured Ceiling Paint"
msgstr "Pintura de techo con textura"
@@ -1123,6 +1230,10 @@ msgstr "persa"
msgid "Rug (@1)"
msgstr "Tapete (@1)"
+#: ../homedecor/misc-nodes.lua ../homedecor/furniture.lua
+msgid "black"
+msgstr "negra"
+
#: ../homedecor/misc-nodes.lua
msgid "Flower Pot (@1)"
msgstr "Maceta (@1)"
@@ -1280,8 +1391,8 @@ msgid "Legs for Utility Table"
msgstr "Patas para mesa utilitaria"
#: ../homedecor/books.lua
-msgid "Writable Book (@1)"
-msgstr "Libro (@1)"
+msgid "Writable Book"
+msgstr "Libro"
#: ../homedecor/books.lua
msgid "@1 has written in a book (title: \"@2\"): \"@3\" at location @4"
@@ -1304,12 +1415,12 @@ msgid "plain"
msgstr "liso"
#: ../homedecor/furniture.lua
-msgid "Kitchen chair (@1)"
-msgstr "Silla de cocina (@1)"
+msgid "dark green"
+msgstr "verde oscuro"
#: ../homedecor/furniture.lua
-msgid "Armchair (@1)"
-msgstr "Sillón (@1)"
+msgid "Kitchen chair"
+msgstr "Silla de cocina"
#: ../homedecor/furniture.lua
msgid "Bookshelf (open-frame)"
@@ -1343,6 +1454,26 @@ msgstr "@1 intentó acceder a @2 perteneciente a @3 en @4"
msgid "@1 (Locked)"
msgstr "@1 (Cerrado)"
+#: ../homedecor/handlers/expansion.lua
+msgid "Expansion placeholder (you hacker you!)"
+msgstr "Marcador temporal de expansión (¡Tu, hacker!)"
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Not enough room - the space for the headboard is occupied!"
+msgstr "No hay suficiente espacio - ¡El espacio para la cabecera está ocupado!"
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Someone already owns the spot where the headboard goes."
+msgstr "Alguien ya es dueño del lugar donde va la cabecera."
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Not enough room - the upper space is occupied!"
+msgstr "No hay suficiente espacio - ¡El espacio de encima está ocupado!"
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Someone already owns that spot."
+msgstr "Alguien ya es dueño de ese lugar."
+
#: ../homedecor/handlers/furnaces.lua
msgid "Furnace"
msgstr "Horno"
@@ -1365,51 +1496,51 @@ msgstr "@1 (sin combustible)"
#: ../homedecor/handlers/furnaces.lua
msgid "@1 (output bins are full)"
-msgstr "@1 (output bins are full)"
+msgstr "@1 (ranuras de salida llenas)"
#: ../homedecor/office.lua
msgid "Filing cabinet"
msgstr "Archivador"
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/grey"
-msgstr "blanco/gris"
-
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/dark grey"
-msgstr "blanco/gris oscuro"
+#: ../homedecor/office.lua
+msgid "Desk"
+msgstr "Escritorio"
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/black"
-msgstr "blanco/negro"
+#: ../homedecor/office.lua
+msgid "Desk globe"
+msgstr "Globo terráqueo"
-#: ../homedecor/bathroom_furniture.lua
-msgid "black/dark grey"
-msgstr "negro/gris oscuro"
+#: ../homedecor/office.lua
+msgid "Calendar"
+msgstr "Calendario"
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/red"
-msgstr "blanco/rojo"
+#: ../homedecor/office.lua
+msgid ""
+"Date (right-click to update):\n"
+"@1"
+msgstr ""
+"Fecha (clic derecho para actualizar):\n"
+"@1"
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/green"
-msgstr "blanco/verde"
+#: ../homedecor/office.lua
+msgid "Basic office chair"
+msgstr "Silla básica de oficina"
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/blue"
-msgstr "blanco/azul"
+#: ../homedecor/office.lua
+msgid "Upscale office chair"
+msgstr "Silla grande de oficina"
#: ../homedecor/bathroom_furniture.lua
-msgid "white/yellow"
-msgstr "blanco/amarillo"
+msgid "Bathroom/kitchen tiles (dark)"
+msgstr "Azulejo de baño/cocina (tonos oscuros)"
#: ../homedecor/bathroom_furniture.lua
-msgid "white/tan"
-msgstr "blanco/marrón"
+msgid "Bathroom/kitchen tiles (medium)"
+msgstr "Azulejo de baño/cocina (tonos medios)"
#: ../homedecor/bathroom_furniture.lua
-msgid "Bathroom/kitchen tiles (@1)"
-msgstr "Azulejo de baño/cocina (@1)"
+msgid "Bathroom/kitchen tiles (light)"
+msgstr "Azulejo de baño/cocina (tonos claros)"
#: ../homedecor/bathroom_furniture.lua
msgid "Towel rod with towel"
@@ -1418,3 +1549,36 @@ msgstr "Toallero con toalla"
#: ../homedecor/bathroom_furniture.lua
msgid "Medicine cabinet"
msgstr "Gabinete de medicinas"
+
+#~ msgid "grey"
+#~ msgstr "gris"
+
+#~ msgid "brown"
+#~ msgstr "marrón"
+
+#~ msgid "white/grey"
+#~ msgstr "blanco/gris"
+
+#~ msgid "white/dark grey"
+#~ msgstr "blanco/gris oscuro"
+
+#~ msgid "white/black"
+#~ msgstr "blanco/negro"
+
+#~ msgid "black/dark grey"
+#~ msgstr "negro/gris oscuro"
+
+#~ msgid "white/red"
+#~ msgstr "blanco/rojo"
+
+#~ msgid "white/green"
+#~ msgstr "blanco/verde"
+
+#~ msgid "white/blue"
+#~ msgstr "blanco/azul"
+
+#~ msgid "white/yellow"
+#~ msgstr "blanco/amarillo"
+
+#~ msgid "white/tan"
+#~ msgstr "blanco/marrón"
diff --git a/homedecor_i18n/locale/fr.po b/homedecor_i18n/locale/fr.po
index 30a7809..a69fcd0 100644
--- a/homedecor_i18n/locale/fr.po
+++ b/homedecor_i18n/locale/fr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-01-30 21:31-0300\n"
+"POT-Creation-Date: 2017-02-10 05:34-0300\n"
"PO-Revision-Date: 2017-01-25 00:03-0300\n"
"Last-Translator: Calinou <Calinou@users.noreply.github.com>\n"
"Language-Team: French\n"
@@ -285,7 +285,7 @@ msgstr ""
msgid "Loaded!"
msgstr "Chargé !"
-#: ../lrfurn/armchairs.lua
+#: ../lrfurn/armchairs.lua ../homedecor/furniture.lua
msgid "Armchair"
msgstr ""
@@ -324,96 +324,31 @@ msgid "Glowing Embers"
msgstr ""
#: ../fake_fire/init.lua
-msgid "Flint and steel"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
-#: ../homedecor/misc-nodes.lua ../homedecor/furniture.lua
-msgid "black"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/books.lua
-msgid "brown"
+msgid "Stone chimney top"
msgstr ""
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/books.lua ../homedecor/furniture.lua
-#, fuzzy
-msgid "blue"
-msgstr "bleues"
-
-#: ../homedecor/bedroom.lua
-msgid "cyan"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
-msgid "dark grey"
+#: ../fake_fire/init.lua
+msgid "Sandstone chimney top"
msgstr ""
-#: ../homedecor/bedroom.lua ../homedecor/furniture.lua
-#, fuzzy
-msgid "dark green"
-msgstr "vertes"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/exterior.lua
-#: ../homedecor/misc-nodes.lua ../homedecor/books.lua
-#, fuzzy
-msgid "green"
-msgstr "vertes"
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua ../homedecor/books.lua
-msgid "grey"
+#: ../fake_fire/init.lua
+msgid "Flint and steel"
msgstr ""
-#: ../homedecor/bedroom.lua
-msgid "magenta"
+#: ../fake_fire/init.lua
+msgid "This area is protected!"
msgstr ""
#: ../homedecor/bedroom.lua
-msgid "orange"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/furniture.lua
-#, fuzzy
-msgid "pink"
-msgstr "roses"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua
-#: ../homedecor/exterior.lua ../homedecor/books.lua ../homedecor/furniture.lua
#, fuzzy
-msgid "red"
+msgid "Bed"
msgstr "rouges"
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua ../homedecor/books.lua
-#: ../homedecor/furniture.lua
-#, fuzzy
-msgid "violet"
-msgstr "violettes"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua
-#, fuzzy
-msgid "white"
-msgstr "blanches"
-
-#: ../homedecor/bedroom.lua ../homedecor/lighting.lua ../homedecor/shutters.lua
-#: ../homedecor/exterior.lua
-msgid "yellow"
-msgstr ""
-
#: ../homedecor/bedroom.lua
-msgid "Bed (@1)"
+msgid "Bed (king sized)"
msgstr ""
#: ../homedecor/bedroom.lua
-msgid "Bed (@1, king sized)"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
msgid "mahogany"
msgstr ""
@@ -479,6 +414,15 @@ msgid "Under-sink cabinet"
msgstr "Meuble sous évier"
#: ../homedecor/kitchen_furniture.lua
+msgid "Copper pans"
+msgstr ""
+
+#: ../homedecor/kitchen_furniture.lua
+#, fuzzy
+msgid "Kitchen Faucet"
+msgstr "Meuble de cuisine"
+
+#: ../homedecor/kitchen_furniture.lua
msgid "Paper towels"
msgstr ""
@@ -603,6 +547,18 @@ msgstr "Bardeaux d'asphalte"
msgid "Chimney"
msgstr ""
+#: ../homedecor/electrics.lua
+msgid "Power Outlet"
+msgstr ""
+
+#: ../homedecor/electrics.lua
+msgid "Light switch"
+msgstr ""
+
+#: ../homedecor/electrics.lua
+msgid "Doorbell"
+msgstr ""
+
#: ../homedecor/window_treatments.lua
msgid "Window (quartered)"
msgstr ""
@@ -650,6 +606,38 @@ msgstr ""
msgid "Stained Glass"
msgstr ""
+#: ../homedecor/window_treatments.lua ../homedecor/exterior.lua
+#: ../homedecor/furniture.lua
+#, fuzzy
+msgid "red"
+msgstr "rouges"
+
+#: ../homedecor/window_treatments.lua ../homedecor/exterior.lua
+#: ../homedecor/misc-nodes.lua
+#, fuzzy
+msgid "green"
+msgstr "vertes"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+#, fuzzy
+msgid "blue"
+msgstr "bleues"
+
+#: ../homedecor/window_treatments.lua ../homedecor/lighting.lua
+#, fuzzy
+msgid "white"
+msgstr "blanches"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+#, fuzzy
+msgid "pink"
+msgstr "roses"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+#, fuzzy
+msgid "violet"
+msgstr "violettes"
+
#: ../homedecor/crafts.lua
#, fuzzy
msgid "Uncooked Terracotta Base"
@@ -802,6 +790,34 @@ msgstr ""
msgid "Telephone"
msgstr ""
+#: ../homedecor/cobweb.lua
+msgid "Cobweb"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Plastic analog clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Wooden analog clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Digital clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Alarm clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Grandfather Clock"
+msgstr ""
+
+#: ../homedecor/lighting.lua ../homedecor/exterior.lua
+msgid "yellow"
+msgstr ""
+
#: ../homedecor/lighting.lua
#, fuzzy
msgid "Thick Glowlight"
@@ -862,6 +878,11 @@ msgid "Hanging Lantern"
msgstr ""
#: ../homedecor/lighting.lua
+#, fuzzy
+msgid "Ceiling Lantern"
+msgstr "Meuble sous évier"
+
+#: ../homedecor/lighting.lua
msgid "Lattice lantern (large)"
msgstr ""
@@ -878,7 +899,7 @@ msgid "Standing Lamp"
msgstr ""
#: ../homedecor/lighting.lua
-msgid "Desk Lamp (@1)"
+msgid "Desk Lamp"
msgstr ""
#: ../homedecor/lighting.lua
@@ -960,21 +981,8 @@ msgid "Wrought Iron fence (type 2) Corner"
msgstr "Barrière en fer forgé"
#: ../homedecor/shutters.lua
-msgid "unpainted oak"
-msgstr ""
-
-#: ../homedecor/shutters.lua
-msgid "forest green"
-msgstr ""
-
-#: ../homedecor/shutters.lua
-#, fuzzy
-msgid "light blue"
-msgstr "droite"
-
-#: ../homedecor/shutters.lua
#, fuzzy
-msgid "Wooden Shutter (@1)"
+msgid "Wooden Shutter"
msgstr "Volet en bois (rouge)"
#: ../homedecor/exterior.lua
@@ -1086,6 +1094,86 @@ msgstr ""
msgid "Radiator heater"
msgstr ""
+#: ../homedecor/wardrobe.lua
+msgid "Wardrobe"
+msgstr ""
+
+#: ../homedecor/wardrobe.lua
+msgid "Clothes"
+msgstr ""
+
+#: ../homedecor/wardrobe.lua
+msgid "Storage"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+msgid "Green Trash Can"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+msgid "Trash Can"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+msgid "Small Trash Can"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Cutlery set"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Brown bottle"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four brown bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Green bottle"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four green bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four misc brown/green bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Wine rack"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Dartboard"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Beer tap"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Ahh, a frosty cold beer - look in your inventory for it!"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "No room in your inventory to add a beer mug!"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Beer mug"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Soda vending machine"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Please insert a coin in the machine."
+msgstr ""
+
#: ../homedecor/doors_and_gates.lua
#, fuzzy
msgid "Mahogany Closet Door (@1 opening)"
@@ -1193,6 +1281,26 @@ msgstr ""
msgid "Japanese-style door"
msgstr ""
+#: ../homedecor/foyer.lua
+msgid "Wall-mounted coat rack"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Coat tree"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Green welcome mat"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Brown welcome mat"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Grey welcome mat"
+msgstr ""
+
#: ../homedecor/misc-nodes.lua
#, fuzzy
msgid "Textured Ceiling Paint"
@@ -1219,6 +1327,10 @@ msgstr ""
msgid "Rug (@1)"
msgstr ""
+#: ../homedecor/misc-nodes.lua ../homedecor/furniture.lua
+msgid "black"
+msgstr ""
+
#: ../homedecor/misc-nodes.lua
msgid "Flower Pot (@1)"
msgstr ""
@@ -1386,7 +1498,7 @@ msgid "Legs for Utility Table"
msgstr "Pieds pour table basse"
#: ../homedecor/books.lua
-msgid "Writable Book (@1)"
+msgid "Writable Book"
msgstr ""
#: ../homedecor/books.lua
@@ -1413,12 +1525,13 @@ msgstr ""
#: ../homedecor/furniture.lua
#, fuzzy
-msgid "Kitchen chair (@1)"
-msgstr "Meuble de cuisine"
+msgid "dark green"
+msgstr "vertes"
#: ../homedecor/furniture.lua
-msgid "Armchair (@1)"
-msgstr ""
+#, fuzzy
+msgid "Kitchen chair"
+msgstr "Meuble de cuisine"
#: ../homedecor/furniture.lua
msgid "Bookshelf (open-frame)"
@@ -1456,6 +1569,27 @@ msgstr "%s a essayé d'accéder à %s qui est propriété de %s à %s"
msgid "@1 (Locked)"
msgstr "%s (verrouillé)"
+#: ../homedecor/handlers/expansion.lua
+msgid "Expansion placeholder (you hacker you!)"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Not enough room - the space for the headboard is occupied!"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Someone already owns the spot where the headboard goes."
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Not enough room - the upper space is occupied!"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+#, fuzzy
+msgid "Someone already owns that spot."
+msgstr "Désolé, %s est propriétaire de cette zone."
+
#: ../homedecor/handlers/furnaces.lua
msgid "Furnace"
msgstr ""
@@ -1486,48 +1620,42 @@ msgstr ""
msgid "Filing cabinet"
msgstr "Meuble sous évier"
-#: ../homedecor/bathroom_furniture.lua
-#, fuzzy
-msgid "white/grey"
-msgstr "blanches"
-
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/dark grey"
+#: ../homedecor/office.lua
+msgid "Desk"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/black"
+#: ../homedecor/office.lua
+msgid "Desk globe"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "black/dark grey"
+#: ../homedecor/office.lua
+msgid "Calendar"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-#, fuzzy
-msgid "white/red"
-msgstr "blanches"
+#: ../homedecor/office.lua
+msgid ""
+"Date (right-click to update):\n"
+"@1"
+msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/green"
+#: ../homedecor/office.lua
+msgid "Basic office chair"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-#, fuzzy
-msgid "white/blue"
-msgstr "blanches"
+#: ../homedecor/office.lua
+msgid "Upscale office chair"
+msgstr ""
#: ../homedecor/bathroom_furniture.lua
-msgid "white/yellow"
+msgid "Bathroom/kitchen tiles (dark)"
msgstr ""
#: ../homedecor/bathroom_furniture.lua
-#, fuzzy
-msgid "white/tan"
-msgstr "blanches"
+msgid "Bathroom/kitchen tiles (medium)"
+msgstr ""
#: ../homedecor/bathroom_furniture.lua
-msgid "Bathroom/kitchen tiles (@1)"
+msgid "Bathroom/kitchen tiles (light)"
msgstr ""
#: ../homedecor/bathroom_furniture.lua
@@ -1540,6 +1668,26 @@ msgid "Medicine cabinet"
msgstr "Meuble sous évier"
#, fuzzy
+#~ msgid "white/grey"
+#~ msgstr "blanches"
+
+#, fuzzy
+#~ msgid "white/red"
+#~ msgstr "blanches"
+
+#, fuzzy
+#~ msgid "white/blue"
+#~ msgstr "blanches"
+
+#, fuzzy
+#~ msgid "white/tan"
+#~ msgstr "blanches"
+
+#, fuzzy
+#~ msgid "light blue"
+#~ msgstr "droite"
+
+#, fuzzy
#~ msgid "dark_grey"
#~ msgstr "vertes"
@@ -1640,9 +1788,6 @@ msgstr "Meuble sous évier"
#~ msgid "someone "
#~ msgstr "quelqu'un"
-#~ msgid "Sorry, %s owns that spot. "
-#~ msgstr "Désolé, %s est propriétaire de cette zone."
-
#~ msgid "White Glowlight (small cube) "
#~ msgstr "Lampe blanche (petit cube)"
diff --git a/homedecor_i18n/locale/it.po b/homedecor_i18n/locale/it.po
index 7492464..74cb57e 100644
--- a/homedecor_i18n/locale/it.po
+++ b/homedecor_i18n/locale/it.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-01-30 21:31-0300\n"
+"POT-Creation-Date: 2017-02-10 05:34-0300\n"
"PO-Revision-Date: 2017-01-25 00:03-0300\n"
"Last-Translator: Emon <?>\n"
"Language-Team: Italian\n"
@@ -286,7 +286,7 @@ msgstr ""
msgid "Loaded!"
msgstr "Caricato!"
-#: ../lrfurn/armchairs.lua
+#: ../lrfurn/armchairs.lua ../homedecor/furniture.lua
#, fuzzy
msgid "Armchair"
msgstr "Poltrona (%s)"
@@ -326,98 +326,31 @@ msgid "Glowing Embers"
msgstr ""
#: ../fake_fire/init.lua
-msgid "Flint and steel"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
-#: ../homedecor/misc-nodes.lua ../homedecor/furniture.lua
-#, fuzzy
-msgid "black"
-msgstr "nero"
-
-#: ../homedecor/bedroom.lua ../homedecor/books.lua
-msgid "brown"
+msgid "Stone chimney top"
msgstr ""
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/books.lua ../homedecor/furniture.lua
-#, fuzzy
-msgid "blue"
-msgstr "blu"
-
-#: ../homedecor/bedroom.lua
-msgid "cyan"
+#: ../fake_fire/init.lua
+msgid "Sandstone chimney top"
msgstr ""
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
-#, fuzzy
-msgid "dark grey"
-msgstr "verde scuro"
-
-#: ../homedecor/bedroom.lua ../homedecor/furniture.lua
-#, fuzzy
-msgid "dark green"
-msgstr "verde scuro"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/exterior.lua
-#: ../homedecor/misc-nodes.lua ../homedecor/books.lua
-#, fuzzy
-msgid "green"
-msgstr "verde"
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua ../homedecor/books.lua
-msgid "grey"
+#: ../fake_fire/init.lua
+msgid "Flint and steel"
msgstr ""
-#: ../homedecor/bedroom.lua
-msgid "magenta"
+#: ../fake_fire/init.lua
+msgid "This area is protected!"
msgstr ""
#: ../homedecor/bedroom.lua
-msgid "orange"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/furniture.lua
-#, fuzzy
-msgid "pink"
-msgstr "rosa"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua
-#: ../homedecor/exterior.lua ../homedecor/books.lua ../homedecor/furniture.lua
#, fuzzy
-msgid "red"
+msgid "Bed"
msgstr "rosso"
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua ../homedecor/books.lua
-#: ../homedecor/furniture.lua
-#, fuzzy
-msgid "violet"
-msgstr "viola"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua
-#, fuzzy
-msgid "white"
-msgstr "bianco"
-
-#: ../homedecor/bedroom.lua ../homedecor/lighting.lua ../homedecor/shutters.lua
-#: ../homedecor/exterior.lua
-msgid "yellow"
-msgstr ""
-
#: ../homedecor/bedroom.lua
-msgid "Bed (@1)"
+msgid "Bed (king sized)"
msgstr ""
#: ../homedecor/bedroom.lua
-msgid "Bed (@1, king sized)"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
msgid "mahogany"
msgstr ""
@@ -483,6 +416,15 @@ msgid "Under-sink cabinet"
msgstr "Armadietto sotto il lavandino"
#: ../homedecor/kitchen_furniture.lua
+msgid "Copper pans"
+msgstr ""
+
+#: ../homedecor/kitchen_furniture.lua
+#, fuzzy
+msgid "Kitchen Faucet"
+msgstr "Armadietto della cucina"
+
+#: ../homedecor/kitchen_furniture.lua
msgid "Paper towels"
msgstr ""
@@ -615,6 +557,18 @@ msgstr "Mattonelle di asfalto"
msgid "Chimney"
msgstr ""
+#: ../homedecor/electrics.lua
+msgid "Power Outlet"
+msgstr ""
+
+#: ../homedecor/electrics.lua
+msgid "Light switch"
+msgstr ""
+
+#: ../homedecor/electrics.lua
+msgid "Doorbell"
+msgstr ""
+
#: ../homedecor/window_treatments.lua
msgid "Window (quartered)"
msgstr ""
@@ -662,6 +616,38 @@ msgstr ""
msgid "Stained Glass"
msgstr ""
+#: ../homedecor/window_treatments.lua ../homedecor/exterior.lua
+#: ../homedecor/furniture.lua
+#, fuzzy
+msgid "red"
+msgstr "rosso"
+
+#: ../homedecor/window_treatments.lua ../homedecor/exterior.lua
+#: ../homedecor/misc-nodes.lua
+#, fuzzy
+msgid "green"
+msgstr "verde"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+#, fuzzy
+msgid "blue"
+msgstr "blu"
+
+#: ../homedecor/window_treatments.lua ../homedecor/lighting.lua
+#, fuzzy
+msgid "white"
+msgstr "bianco"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+#, fuzzy
+msgid "pink"
+msgstr "rosa"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+#, fuzzy
+msgid "violet"
+msgstr "viola"
+
#: ../homedecor/crafts.lua
#, fuzzy
msgid "Uncooked Terracotta Base"
@@ -814,6 +800,34 @@ msgstr ""
msgid "Telephone"
msgstr ""
+#: ../homedecor/cobweb.lua
+msgid "Cobweb"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Plastic analog clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Wooden analog clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Digital clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Alarm clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Grandfather Clock"
+msgstr ""
+
+#: ../homedecor/lighting.lua ../homedecor/exterior.lua
+msgid "yellow"
+msgstr ""
+
#: ../homedecor/lighting.lua
#, fuzzy
msgid "Thick Glowlight"
@@ -875,6 +889,11 @@ msgid "Hanging Lantern"
msgstr ""
#: ../homedecor/lighting.lua
+#, fuzzy
+msgid "Ceiling Lantern"
+msgstr "Armadietto sotto il lavandino"
+
+#: ../homedecor/lighting.lua
msgid "Lattice lantern (large)"
msgstr ""
@@ -892,8 +911,9 @@ msgid "Standing Lamp"
msgstr ""
#: ../homedecor/lighting.lua
-msgid "Desk Lamp (@1)"
-msgstr ""
+#, fuzzy
+msgid "Desk Lamp"
+msgstr "Lampada da tavolo"
#: ../homedecor/lighting.lua
msgid "Ceiling Lamp"
@@ -974,21 +994,8 @@ msgid "Wrought Iron fence (type 2) Corner"
msgstr "Recinzione/ringhiera in ferro battuto"
#: ../homedecor/shutters.lua
-msgid "unpainted oak"
-msgstr ""
-
-#: ../homedecor/shutters.lua
-msgid "forest green"
-msgstr ""
-
-#: ../homedecor/shutters.lua
-#, fuzzy
-msgid "light blue"
-msgstr "destra"
-
-#: ../homedecor/shutters.lua
#, fuzzy
-msgid "Wooden Shutter (@1)"
+msgid "Wooden Shutter"
msgstr "Persiana in legno (rossa)"
#: ../homedecor/exterior.lua
@@ -1106,6 +1113,86 @@ msgstr ""
msgid "Radiator heater"
msgstr ""
+#: ../homedecor/wardrobe.lua
+msgid "Wardrobe"
+msgstr ""
+
+#: ../homedecor/wardrobe.lua
+msgid "Clothes"
+msgstr ""
+
+#: ../homedecor/wardrobe.lua
+msgid "Storage"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+msgid "Green Trash Can"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+msgid "Trash Can"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+msgid "Small Trash Can"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Cutlery set"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Brown bottle"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four brown bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Green bottle"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four green bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four misc brown/green bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Wine rack"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Dartboard"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Beer tap"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Ahh, a frosty cold beer - look in your inventory for it!"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "No room in your inventory to add a beer mug!"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Beer mug"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Soda vending machine"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Please insert a coin in the machine."
+msgstr ""
+
#: ../homedecor/doors_and_gates.lua
#, fuzzy
msgid "Mahogany Closet Door (@1 opening)"
@@ -1213,6 +1300,26 @@ msgstr ""
msgid "Japanese-style door"
msgstr ""
+#: ../homedecor/foyer.lua
+msgid "Wall-mounted coat rack"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Coat tree"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Green welcome mat"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Brown welcome mat"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Grey welcome mat"
+msgstr ""
+
#: ../homedecor/misc-nodes.lua
#, fuzzy
msgid "Textured Ceiling Paint"
@@ -1239,6 +1346,11 @@ msgstr ""
msgid "Rug (@1)"
msgstr ""
+#: ../homedecor/misc-nodes.lua ../homedecor/furniture.lua
+#, fuzzy
+msgid "black"
+msgstr "nero"
+
#: ../homedecor/misc-nodes.lua
msgid "Flower Pot (@1)"
msgstr ""
@@ -1406,7 +1518,7 @@ msgid "Legs for Utility Table"
msgstr "Gambe per il tavolo da lavoro"
#: ../homedecor/books.lua
-msgid "Writable Book (@1)"
+msgid "Writable Book"
msgstr ""
#: ../homedecor/books.lua
@@ -1434,13 +1546,13 @@ msgstr ""
#: ../homedecor/furniture.lua
#, fuzzy
-msgid "Kitchen chair (@1)"
-msgstr "Armadietto della cucina"
+msgid "dark green"
+msgstr "verde scuro"
#: ../homedecor/furniture.lua
#, fuzzy
-msgid "Armchair (@1)"
-msgstr "Poltrona (%s)"
+msgid "Kitchen chair"
+msgstr "Armadietto della cucina"
#: ../homedecor/furniture.lua
msgid "Bookshelf (open-frame)"
@@ -1478,6 +1590,27 @@ msgstr "%s ha provato ad accedere a %s di proprietà di %s alla posizione %s"
msgid "@1 (Locked)"
msgstr "%s (Con lucchetto)"
+#: ../homedecor/handlers/expansion.lua
+msgid "Expansion placeholder (you hacker you!)"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Not enough room - the space for the headboard is occupied!"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Someone already owns the spot where the headboard goes."
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Not enough room - the upper space is occupied!"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+#, fuzzy
+msgid "Someone already owns that spot."
+msgstr "Spiacente, quel punto è di proprietà di %s."
+
#: ../homedecor/handlers/furnaces.lua
msgid "Furnace"
msgstr ""
@@ -1509,48 +1642,43 @@ msgstr "i contenitori sono pieni"
msgid "Filing cabinet"
msgstr "Armadietto sotto il lavandino"
-#: ../homedecor/bathroom_furniture.lua
+#: ../homedecor/office.lua
#, fuzzy
-msgid "white/grey"
-msgstr "bianco"
+msgid "Desk"
+msgstr "Lampada da tavolo"
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/dark grey"
+#: ../homedecor/office.lua
+msgid "Desk globe"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/black"
+#: ../homedecor/office.lua
+msgid "Calendar"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "black/dark grey"
+#: ../homedecor/office.lua
+msgid ""
+"Date (right-click to update):\n"
+"@1"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-#, fuzzy
-msgid "white/red"
-msgstr "bianco"
-
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/green"
+#: ../homedecor/office.lua
+msgid "Basic office chair"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-#, fuzzy
-msgid "white/blue"
-msgstr "bianco"
+#: ../homedecor/office.lua
+msgid "Upscale office chair"
+msgstr ""
#: ../homedecor/bathroom_furniture.lua
-msgid "white/yellow"
+msgid "Bathroom/kitchen tiles (dark)"
msgstr ""
#: ../homedecor/bathroom_furniture.lua
-#, fuzzy
-msgid "white/tan"
-msgstr "bianco"
+msgid "Bathroom/kitchen tiles (medium)"
+msgstr ""
#: ../homedecor/bathroom_furniture.lua
-msgid "Bathroom/kitchen tiles (@1)"
+msgid "Bathroom/kitchen tiles (light)"
msgstr ""
#: ../homedecor/bathroom_furniture.lua
@@ -1563,6 +1691,34 @@ msgid "Medicine cabinet"
msgstr "Armadietto sotto il lavandino"
#, fuzzy
+#~ msgid "white/grey"
+#~ msgstr "bianco"
+
+#, fuzzy
+#~ msgid "white/red"
+#~ msgstr "bianco"
+
+#, fuzzy
+#~ msgid "white/blue"
+#~ msgstr "bianco"
+
+#, fuzzy
+#~ msgid "white/tan"
+#~ msgstr "bianco"
+
+#, fuzzy
+#~ msgid "dark grey"
+#~ msgstr "verde scuro"
+
+#, fuzzy
+#~ msgid "light blue"
+#~ msgstr "destra"
+
+#, fuzzy
+#~ msgid "Armchair (@1)"
+#~ msgstr "Poltrona (%s)"
+
+#, fuzzy
#~ msgid "dark_grey"
#~ msgstr "verde scuro"
@@ -1699,9 +1855,6 @@ msgstr "Armadietto sotto il lavandino"
#~ msgid "someone "
#~ msgstr "qualcuno"
-#~ msgid "Sorry, %s owns that spot. "
-#~ msgstr "Spiacente, quel punto è di proprietà di %s."
-
#~ msgid "White Glowlight (small cube) "
#~ msgstr "Luce fosforescente bianca (cubo piccolo)"
diff --git a/homedecor_i18n/locale/ms.po b/homedecor_i18n/locale/ms.po
index c550a46..e4b1ec2 100644
--- a/homedecor_i18n/locale/ms.po
+++ b/homedecor_i18n/locale/ms.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-01-30 21:31-0300\n"
+"POT-Creation-Date: 2017-02-10 05:34-0300\n"
"PO-Revision-Date: 2017-01-25 00:03-0300\n"
"Last-Translator: muhdnurhidayat <MuhdNurHidayat@users.noreply.github.com>\n"
"Language-Team: Malay\n"
@@ -285,7 +285,7 @@ msgstr ""
msgid "Loaded!"
msgstr "Telah Dimuatkan!"
-#: ../lrfurn/armchairs.lua
+#: ../lrfurn/armchairs.lua ../homedecor/furniture.lua
#, fuzzy
msgid "Armchair"
msgstr "Kerusi Tangan (%s)"
@@ -325,98 +325,31 @@ msgid "Glowing Embers"
msgstr ""
#: ../fake_fire/init.lua
-msgid "Flint and steel"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
-#: ../homedecor/misc-nodes.lua ../homedecor/furniture.lua
-#, fuzzy
-msgid "black"
-msgstr "Hitam"
-
-#: ../homedecor/bedroom.lua ../homedecor/books.lua
-msgid "brown"
+msgid "Stone chimney top"
msgstr ""
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/books.lua ../homedecor/furniture.lua
-#, fuzzy
-msgid "blue"
-msgstr "biru"
-
-#: ../homedecor/bedroom.lua
-msgid "cyan"
+#: ../fake_fire/init.lua
+msgid "Sandstone chimney top"
msgstr ""
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
-#, fuzzy
-msgid "dark grey"
-msgstr "Hijau Gelap"
-
-#: ../homedecor/bedroom.lua ../homedecor/furniture.lua
-#, fuzzy
-msgid "dark green"
-msgstr "Hijau Gelap"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/exterior.lua
-#: ../homedecor/misc-nodes.lua ../homedecor/books.lua
-#, fuzzy
-msgid "green"
-msgstr "hijau"
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua ../homedecor/books.lua
-msgid "grey"
+#: ../fake_fire/init.lua
+msgid "Flint and steel"
msgstr ""
-#: ../homedecor/bedroom.lua
-msgid "magenta"
+#: ../fake_fire/init.lua
+msgid "This area is protected!"
msgstr ""
#: ../homedecor/bedroom.lua
-msgid "orange"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/furniture.lua
-#, fuzzy
-msgid "pink"
-msgstr "merah jambu"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua
-#: ../homedecor/exterior.lua ../homedecor/books.lua ../homedecor/furniture.lua
#, fuzzy
-msgid "red"
+msgid "Bed"
msgstr "merah"
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua ../homedecor/books.lua
-#: ../homedecor/furniture.lua
-#, fuzzy
-msgid "violet"
-msgstr "ungu"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua
-#, fuzzy
-msgid "white"
-msgstr "putih"
-
-#: ../homedecor/bedroom.lua ../homedecor/lighting.lua ../homedecor/shutters.lua
-#: ../homedecor/exterior.lua
-msgid "yellow"
-msgstr ""
-
#: ../homedecor/bedroom.lua
-msgid "Bed (@1)"
+msgid "Bed (king sized)"
msgstr ""
#: ../homedecor/bedroom.lua
-msgid "Bed (@1, king sized)"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
msgid "mahogany"
msgstr ""
@@ -482,6 +415,15 @@ msgid "Under-sink cabinet"
msgstr "Kabinet Bawah Sinki"
#: ../homedecor/kitchen_furniture.lua
+msgid "Copper pans"
+msgstr ""
+
+#: ../homedecor/kitchen_furniture.lua
+#, fuzzy
+msgid "Kitchen Faucet"
+msgstr "Kabinet Dapur"
+
+#: ../homedecor/kitchen_furniture.lua
msgid "Paper towels"
msgstr ""
@@ -614,6 +556,18 @@ msgstr "Genting Asfalt"
msgid "Chimney"
msgstr ""
+#: ../homedecor/electrics.lua
+msgid "Power Outlet"
+msgstr ""
+
+#: ../homedecor/electrics.lua
+msgid "Light switch"
+msgstr ""
+
+#: ../homedecor/electrics.lua
+msgid "Doorbell"
+msgstr ""
+
#: ../homedecor/window_treatments.lua
msgid "Window (quartered)"
msgstr ""
@@ -661,6 +615,38 @@ msgstr ""
msgid "Stained Glass"
msgstr ""
+#: ../homedecor/window_treatments.lua ../homedecor/exterior.lua
+#: ../homedecor/furniture.lua
+#, fuzzy
+msgid "red"
+msgstr "merah"
+
+#: ../homedecor/window_treatments.lua ../homedecor/exterior.lua
+#: ../homedecor/misc-nodes.lua
+#, fuzzy
+msgid "green"
+msgstr "hijau"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+#, fuzzy
+msgid "blue"
+msgstr "biru"
+
+#: ../homedecor/window_treatments.lua ../homedecor/lighting.lua
+#, fuzzy
+msgid "white"
+msgstr "putih"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+#, fuzzy
+msgid "pink"
+msgstr "merah jambu"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+#, fuzzy
+msgid "violet"
+msgstr "ungu"
+
#: ../homedecor/crafts.lua
#, fuzzy
msgid "Uncooked Terracotta Base"
@@ -813,6 +799,34 @@ msgstr ""
msgid "Telephone"
msgstr ""
+#: ../homedecor/cobweb.lua
+msgid "Cobweb"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Plastic analog clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Wooden analog clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Digital clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Alarm clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Grandfather Clock"
+msgstr ""
+
+#: ../homedecor/lighting.lua ../homedecor/exterior.lua
+msgid "yellow"
+msgstr ""
+
#: ../homedecor/lighting.lua
#, fuzzy
msgid "Thick Glowlight"
@@ -874,6 +888,11 @@ msgid "Hanging Lantern"
msgstr ""
#: ../homedecor/lighting.lua
+#, fuzzy
+msgid "Ceiling Lantern"
+msgstr "Kabinet Bawah Sinki"
+
+#: ../homedecor/lighting.lua
msgid "Lattice lantern (large)"
msgstr ""
@@ -891,8 +910,9 @@ msgid "Standing Lamp"
msgstr ""
#: ../homedecor/lighting.lua
-msgid "Desk Lamp (@1)"
-msgstr ""
+#, fuzzy
+msgid "Desk Lamp"
+msgstr "Lampu Meja"
#: ../homedecor/lighting.lua
msgid "Ceiling Lamp"
@@ -973,21 +993,8 @@ msgid "Wrought Iron fence (type 2) Corner"
msgstr "Pagar/Kisi-kisi Besi Tempaan"
#: ../homedecor/shutters.lua
-msgid "unpainted oak"
-msgstr ""
-
-#: ../homedecor/shutters.lua
-msgid "forest green"
-msgstr ""
-
-#: ../homedecor/shutters.lua
-#, fuzzy
-msgid "light blue"
-msgstr "kanan"
-
-#: ../homedecor/shutters.lua
#, fuzzy
-msgid "Wooden Shutter (@1)"
+msgid "Wooden Shutter"
msgstr "Pengatup Kayu (Merah)"
#: ../homedecor/exterior.lua
@@ -1105,6 +1112,86 @@ msgstr ""
msgid "Radiator heater"
msgstr ""
+#: ../homedecor/wardrobe.lua
+msgid "Wardrobe"
+msgstr ""
+
+#: ../homedecor/wardrobe.lua
+msgid "Clothes"
+msgstr ""
+
+#: ../homedecor/wardrobe.lua
+msgid "Storage"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+msgid "Green Trash Can"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+msgid "Trash Can"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+msgid "Small Trash Can"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Cutlery set"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Brown bottle"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four brown bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Green bottle"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four green bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four misc brown/green bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Wine rack"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Dartboard"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Beer tap"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Ahh, a frosty cold beer - look in your inventory for it!"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "No room in your inventory to add a beer mug!"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Beer mug"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Soda vending machine"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Please insert a coin in the machine."
+msgstr ""
+
#: ../homedecor/doors_and_gates.lua
#, fuzzy
msgid "Mahogany Closet Door (@1 opening)"
@@ -1212,6 +1299,26 @@ msgstr ""
msgid "Japanese-style door"
msgstr ""
+#: ../homedecor/foyer.lua
+msgid "Wall-mounted coat rack"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Coat tree"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Green welcome mat"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Brown welcome mat"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Grey welcome mat"
+msgstr ""
+
#: ../homedecor/misc-nodes.lua
#, fuzzy
msgid "Textured Ceiling Paint"
@@ -1238,6 +1345,11 @@ msgstr ""
msgid "Rug (@1)"
msgstr ""
+#: ../homedecor/misc-nodes.lua ../homedecor/furniture.lua
+#, fuzzy
+msgid "black"
+msgstr "Hitam"
+
#: ../homedecor/misc-nodes.lua
msgid "Flower Pot (@1)"
msgstr ""
@@ -1405,7 +1517,7 @@ msgid "Legs for Utility Table"
msgstr "Kaki untuk Meja Utiliti"
#: ../homedecor/books.lua
-msgid "Writable Book (@1)"
+msgid "Writable Book"
msgstr ""
#: ../homedecor/books.lua
@@ -1433,13 +1545,13 @@ msgstr ""
#: ../homedecor/furniture.lua
#, fuzzy
-msgid "Kitchen chair (@1)"
-msgstr "Kabinet Dapur"
+msgid "dark green"
+msgstr "Hijau Gelap"
#: ../homedecor/furniture.lua
#, fuzzy
-msgid "Armchair (@1)"
-msgstr "Kerusi Tangan (%s)"
+msgid "Kitchen chair"
+msgstr "Kabinet Dapur"
#: ../homedecor/furniture.lua
msgid "Bookshelf (open-frame)"
@@ -1477,6 +1589,27 @@ msgstr "%s cuba untuk pakai %s milik %s dekat %s"
msgid "@1 (Locked)"
msgstr "%s (Berkunci)"
+#: ../homedecor/handlers/expansion.lua
+msgid "Expansion placeholder (you hacker you!)"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Not enough room - the space for the headboard is occupied!"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Someone already owns the spot where the headboard goes."
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Not enough room - the upper space is occupied!"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+#, fuzzy
+msgid "Someone already owns that spot."
+msgstr "Maaf, ini kawasan %s."
+
#: ../homedecor/handlers/furnaces.lua
msgid "Furnace"
msgstr ""
@@ -1509,48 +1642,43 @@ msgstr ": dulang keluar penuh"
msgid "Filing cabinet"
msgstr "Kabinet Bawah Sinki"
-#: ../homedecor/bathroom_furniture.lua
+#: ../homedecor/office.lua
#, fuzzy
-msgid "white/grey"
-msgstr "putih"
+msgid "Desk"
+msgstr "Lampu Meja"
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/dark grey"
+#: ../homedecor/office.lua
+msgid "Desk globe"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/black"
+#: ../homedecor/office.lua
+msgid "Calendar"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "black/dark grey"
+#: ../homedecor/office.lua
+msgid ""
+"Date (right-click to update):\n"
+"@1"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-#, fuzzy
-msgid "white/red"
-msgstr "putih"
-
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/green"
+#: ../homedecor/office.lua
+msgid "Basic office chair"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-#, fuzzy
-msgid "white/blue"
-msgstr "putih"
+#: ../homedecor/office.lua
+msgid "Upscale office chair"
+msgstr ""
#: ../homedecor/bathroom_furniture.lua
-msgid "white/yellow"
+msgid "Bathroom/kitchen tiles (dark)"
msgstr ""
#: ../homedecor/bathroom_furniture.lua
-#, fuzzy
-msgid "white/tan"
-msgstr "putih"
+msgid "Bathroom/kitchen tiles (medium)"
+msgstr ""
#: ../homedecor/bathroom_furniture.lua
-msgid "Bathroom/kitchen tiles (@1)"
+msgid "Bathroom/kitchen tiles (light)"
msgstr ""
#: ../homedecor/bathroom_furniture.lua
@@ -1563,6 +1691,34 @@ msgid "Medicine cabinet"
msgstr "Kabinet Bawah Sinki"
#, fuzzy
+#~ msgid "white/grey"
+#~ msgstr "putih"
+
+#, fuzzy
+#~ msgid "white/red"
+#~ msgstr "putih"
+
+#, fuzzy
+#~ msgid "white/blue"
+#~ msgstr "putih"
+
+#, fuzzy
+#~ msgid "white/tan"
+#~ msgstr "putih"
+
+#, fuzzy
+#~ msgid "dark grey"
+#~ msgstr "Hijau Gelap"
+
+#, fuzzy
+#~ msgid "light blue"
+#~ msgstr "kanan"
+
+#, fuzzy
+#~ msgid "Armchair (@1)"
+#~ msgstr "Kerusi Tangan (%s)"
+
+#, fuzzy
#~ msgid "dark_grey"
#~ msgstr "Hijau Gelap"
@@ -1699,9 +1855,6 @@ msgstr "Kabinet Bawah Sinki"
#~ msgid "someone "
#~ msgstr "seseorang"
-#~ msgid "Sorry, %s owns that spot. "
-#~ msgstr "Maaf, ini kawasan %s."
-
#~ msgid "White Glowlight (small cube) "
#~ msgstr "Lampu Bara Putih (kiub kecil)"
diff --git a/homedecor_i18n/locale/pt.po b/homedecor_i18n/locale/pt.po
index a343f54..ccd4cd5 100644
--- a/homedecor_i18n/locale/pt.po
+++ b/homedecor_i18n/locale/pt.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-01-30 21:31-0300\n"
+"POT-Creation-Date: 2017-02-10 05:34-0300\n"
"PO-Revision-Date: 2017-01-29 00:21-0200\n"
"Last-Translator: Aracnus <frederico@teia.bio.br>\n"
"Language-Team: Portuguese\n"
@@ -298,7 +298,7 @@ msgstr ""
msgid "Loaded!"
msgstr "Carregado!"
-#: ../lrfurn/armchairs.lua
+#: ../lrfurn/armchairs.lua ../homedecor/furniture.lua
#, fuzzy
msgid "Armchair"
msgstr "Poltrona (@1)"
@@ -338,89 +338,32 @@ msgid "Glowing Embers"
msgstr ""
#: ../fake_fire/init.lua
-msgid "Flint and steel"
+msgid "Stone chimney top"
msgstr ""
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
-#: ../homedecor/misc-nodes.lua ../homedecor/furniture.lua
-msgid "black"
-msgstr "preto"
-
-#: ../homedecor/bedroom.lua ../homedecor/books.lua
-msgid "brown"
-msgstr "marrom"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/books.lua ../homedecor/furniture.lua
-msgid "blue"
-msgstr "azul"
-
-#: ../homedecor/bedroom.lua
-msgid "cyan"
-msgstr "ciano\t\t"
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
-msgid "dark grey"
-msgstr "cinza escuro"
-
-#: ../homedecor/bedroom.lua ../homedecor/furniture.lua
-msgid "dark green"
-msgstr "verde escuro"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/exterior.lua
-#: ../homedecor/misc-nodes.lua ../homedecor/books.lua
-msgid "green"
-msgstr "verde"
+#: ../fake_fire/init.lua
+msgid "Sandstone chimney top"
+msgstr ""
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua ../homedecor/books.lua
-msgid "grey"
-msgstr "cinza"
+#: ../fake_fire/init.lua
+msgid "Flint and steel"
+msgstr ""
-#: ../homedecor/bedroom.lua
-msgid "magenta"
-msgstr "magenta"
+#: ../fake_fire/init.lua
+msgid "This area is protected!"
+msgstr ""
#: ../homedecor/bedroom.lua
-msgid "orange"
-msgstr "laranja"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/furniture.lua
-msgid "pink"
-msgstr "rosa"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua
-#: ../homedecor/exterior.lua ../homedecor/books.lua ../homedecor/furniture.lua
-msgid "red"
+#, fuzzy
+msgid "Bed"
msgstr "vermelho"
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua ../homedecor/books.lua
-#: ../homedecor/furniture.lua
-msgid "violet"
-msgstr "violeta"
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua
-msgid "white"
-msgstr "branco"
-
-#: ../homedecor/bedroom.lua ../homedecor/lighting.lua ../homedecor/shutters.lua
-#: ../homedecor/exterior.lua
-msgid "yellow"
-msgstr "amarelo"
-
#: ../homedecor/bedroom.lua
-msgid "Bed (@1)"
-msgstr "Cama (@1)"
-
-#: ../homedecor/bedroom.lua
-msgid "Bed (@1, king sized)"
+#, fuzzy
+msgid "Bed (king sized)"
msgstr "Cama (@1, aumentada)"
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
+#: ../homedecor/bedroom.lua
msgid "mahogany"
msgstr "mogno"
@@ -477,6 +420,16 @@ msgid "Under-sink cabinet"
msgstr "Armário sob a Pia"
#: ../homedecor/kitchen_furniture.lua
+#, fuzzy
+msgid "Copper pans"
+msgstr "Tira de Cobre"
+
+#: ../homedecor/kitchen_furniture.lua
+#, fuzzy
+msgid "Kitchen Faucet"
+msgstr "Armário de Cozinha"
+
+#: ../homedecor/kitchen_furniture.lua
msgid "Paper towels"
msgstr "Papel toalha"
@@ -590,6 +543,19 @@ msgstr "Telhas de Vidro"
msgid "Chimney"
msgstr "Chaminé"
+#: ../homedecor/electrics.lua
+#, fuzzy
+msgid "Power Outlet"
+msgstr "Cristal de Força"
+
+#: ../homedecor/electrics.lua
+msgid "Light switch"
+msgstr ""
+
+#: ../homedecor/electrics.lua
+msgid "Doorbell"
+msgstr ""
+
#: ../homedecor/window_treatments.lua
msgid "Window (quartered)"
msgstr "Janela Dividida"
@@ -633,6 +599,32 @@ msgstr "Janela com Caixa de Flores"
msgid "Stained Glass"
msgstr "Vitral"
+#: ../homedecor/window_treatments.lua ../homedecor/exterior.lua
+#: ../homedecor/furniture.lua
+msgid "red"
+msgstr "vermelho"
+
+#: ../homedecor/window_treatments.lua ../homedecor/exterior.lua
+#: ../homedecor/misc-nodes.lua
+msgid "green"
+msgstr "verde"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+msgid "blue"
+msgstr "azul"
+
+#: ../homedecor/window_treatments.lua ../homedecor/lighting.lua
+msgid "white"
+msgstr "branco"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+msgid "pink"
+msgstr "rosa"
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+msgid "violet"
+msgstr "violeta"
+
#: ../homedecor/crafts.lua
msgid "Uncooked Terracotta Base"
msgstr "Base Bruta de Terracota"
@@ -769,6 +761,34 @@ msgstr "DVD e VCR"
msgid "Telephone"
msgstr "Telefone"
+#: ../homedecor/cobweb.lua
+msgid "Cobweb"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Plastic analog clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Wooden analog clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Digital clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Alarm clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Grandfather Clock"
+msgstr ""
+
+#: ../homedecor/lighting.lua ../homedecor/exterior.lua
+msgid "yellow"
+msgstr "amarelo"
+
#: ../homedecor/lighting.lua
#, fuzzy
msgid "Thick Glowlight"
@@ -829,6 +849,11 @@ msgid "Hanging Lantern"
msgstr "Lanterna de Parede"
#: ../homedecor/lighting.lua
+#, fuzzy
+msgid "Ceiling Lantern"
+msgstr "Ventilador de Teto"
+
+#: ../homedecor/lighting.lua
msgid "Lattice lantern (large)"
msgstr "Lanterna com gelosia (grande)"
@@ -847,7 +872,8 @@ msgid "Standing Lamp"
msgstr "Luminária Elevada (@1)"
#: ../homedecor/lighting.lua
-msgid "Desk Lamp (@1)"
+#, fuzzy
+msgid "Desk Lamp"
msgstr "Luminária de Escritório (@1)"
#: ../homedecor/lighting.lua
@@ -915,19 +941,8 @@ msgid "Wrought Iron fence (type 2) Corner"
msgstr "Cerca de Ferro Forjado (tipo 2) de Canto"
#: ../homedecor/shutters.lua
-msgid "unpainted oak"
-msgstr "carvalho não pintado"
-
-#: ../homedecor/shutters.lua
-msgid "forest green"
-msgstr "verde floresta"
-
-#: ../homedecor/shutters.lua
-msgid "light blue"
-msgstr "azul claro"
-
-#: ../homedecor/shutters.lua
-msgid "Wooden Shutter (@1)"
+#, fuzzy
+msgid "Wooden Shutter"
msgstr "Persiana de Madeira (@1)"
#: ../homedecor/exterior.lua
@@ -1038,6 +1053,89 @@ msgstr "Aquecedor de ambiente"
msgid "Radiator heater"
msgstr "Aquecedor de radiador"
+#: ../homedecor/wardrobe.lua
+msgid "Wardrobe"
+msgstr ""
+
+#: ../homedecor/wardrobe.lua
+msgid "Clothes"
+msgstr ""
+
+#: ../homedecor/wardrobe.lua
+msgid "Storage"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+msgid "Green Trash Can"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+#, fuzzy
+msgid "Trash Can"
+msgstr "Vela Fina"
+
+#: ../homedecor/trash_cans.lua
+msgid "Small Trash Can"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Cutlery set"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Brown bottle"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four brown bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Green bottle"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four green bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four misc brown/green bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Wine rack"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+#, fuzzy
+msgid "Dartboard"
+msgstr "Skate"
+
+#: ../homedecor/gastronomy.lua
+msgid "Beer tap"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Ahh, a frosty cold beer - look in your inventory for it!"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "No room in your inventory to add a beer mug!"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Beer mug"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+#, fuzzy
+msgid "Soda vending machine"
+msgstr "Moeda de Ouro (para máquina de venda de refrigerante)"
+
+#: ../homedecor/gastronomy.lua
+msgid "Please insert a coin in the machine."
+msgstr ""
+
#: ../homedecor/doors_and_gates.lua
msgid "Mahogany Closet Door (@1 opening)"
msgstr "Porta de Closet em Mogno (abre para @1)"
@@ -1130,6 +1228,26 @@ msgstr "Tatami Japonês"
msgid "Japanese-style door"
msgstr "Porta estilo japonês"
+#: ../homedecor/foyer.lua
+msgid "Wall-mounted coat rack"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Coat tree"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Green welcome mat"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Brown welcome mat"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Grey welcome mat"
+msgstr ""
+
#: ../homedecor/misc-nodes.lua
msgid "Textured Ceiling Paint"
msgstr "Pintura Texturizada do Teto"
@@ -1154,6 +1272,10 @@ msgstr "persiana"
msgid "Rug (@1)"
msgstr "Carpete (@1)"
+#: ../homedecor/misc-nodes.lua ../homedecor/furniture.lua
+msgid "black"
+msgstr "preto"
+
#: ../homedecor/misc-nodes.lua
msgid "Flower Pot (@1)"
msgstr "Vaso de Flores"
@@ -1311,7 +1433,8 @@ msgid "Legs for Utility Table"
msgstr "Pernas para Mesa de Trabalho"
#: ../homedecor/books.lua
-msgid "Writable Book (@1)"
+#, fuzzy
+msgid "Writable Book"
msgstr "Livro Consumível (@1)"
#: ../homedecor/books.lua
@@ -1335,12 +1458,13 @@ msgid "plain"
msgstr "Sem Acabamento"
#: ../homedecor/furniture.lua
-msgid "Kitchen chair (@1)"
-msgstr "Cadeira de Cozinha (@1)"
+msgid "dark green"
+msgstr "verde escuro"
#: ../homedecor/furniture.lua
-msgid "Armchair (@1)"
-msgstr "Poltrona (@1)"
+#, fuzzy
+msgid "Kitchen chair"
+msgstr "Cadeira de Cozinha (@1)"
#: ../homedecor/furniture.lua
msgid "Bookshelf (open-frame)"
@@ -1374,6 +1498,27 @@ msgstr "@1 tentou acessar @2 pertencente a @3 em @4"
msgid "@1 (Locked)"
msgstr "@1 (trancado)"
+#: ../homedecor/handlers/expansion.lua
+msgid "Expansion placeholder (you hacker you!)"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Not enough room - the space for the headboard is occupied!"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Someone already owns the spot where the headboard goes."
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Not enough room - the upper space is occupied!"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+#, fuzzy
+msgid "Someone already owns that spot."
+msgstr "Desculpe, mas esse local pertence a %s."
+
#: ../homedecor/handlers/furnaces.lua
msgid "Furnace"
msgstr "Forno"
@@ -1402,44 +1547,46 @@ msgstr "@1 (saída de itens está lotada)"
msgid "Filing cabinet"
msgstr "Armário sob a Pia"
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/grey"
-msgstr "branco/cinza"
-
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/dark grey"
-msgstr "branco/cinza escuro"
+#: ../homedecor/office.lua
+#, fuzzy
+msgid "Desk"
+msgstr "Ventilador de Escritório"
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/black"
-msgstr "branco/preto"
+#: ../homedecor/office.lua
+msgid "Desk globe"
+msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "black/dark grey"
-msgstr "preto/cinza escuro"
+#: ../homedecor/office.lua
+msgid "Calendar"
+msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/red"
-msgstr "branco/vermelho"
+#: ../homedecor/office.lua
+msgid ""
+"Date (right-click to update):\n"
+"@1"
+msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/green"
-msgstr "branco/verde"
+#: ../homedecor/office.lua
+msgid "Basic office chair"
+msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/blue"
-msgstr "branco/azul"
+#: ../homedecor/office.lua
+msgid "Upscale office chair"
+msgstr ""
#: ../homedecor/bathroom_furniture.lua
-msgid "white/yellow"
-msgstr "branco/amarelo"
+#, fuzzy
+msgid "Bathroom/kitchen tiles (dark)"
+msgstr "Azulejo de Banheiro/Cozinha (@1)"
#: ../homedecor/bathroom_furniture.lua
-msgid "white/tan"
-msgstr "branco/bronzeado"
+#, fuzzy
+msgid "Bathroom/kitchen tiles (medium)"
+msgstr "Azulejo de Banheiro/Cozinha (@1)"
#: ../homedecor/bathroom_furniture.lua
-msgid "Bathroom/kitchen tiles (@1)"
+#, fuzzy
+msgid "Bathroom/kitchen tiles (light)"
msgstr "Azulejo de Banheiro/Cozinha (@1)"
#: ../homedecor/bathroom_furniture.lua
@@ -1450,6 +1597,66 @@ msgstr "Tolo de Toalha com Toalha"
msgid "Medicine cabinet"
msgstr "Gabinete Medicinal"
+#~ msgid "grey"
+#~ msgstr "cinza"
+
+#~ msgid "brown"
+#~ msgstr "marrom"
+
+#~ msgid "white/grey"
+#~ msgstr "branco/cinza"
+
+#~ msgid "white/dark grey"
+#~ msgstr "branco/cinza escuro"
+
+#~ msgid "white/black"
+#~ msgstr "branco/preto"
+
+#~ msgid "black/dark grey"
+#~ msgstr "preto/cinza escuro"
+
+#~ msgid "white/red"
+#~ msgstr "branco/vermelho"
+
+#~ msgid "white/green"
+#~ msgstr "branco/verde"
+
+#~ msgid "white/blue"
+#~ msgstr "branco/azul"
+
+#~ msgid "white/yellow"
+#~ msgstr "branco/amarelo"
+
+#~ msgid "white/tan"
+#~ msgstr "branco/bronzeado"
+
+#~ msgid "cyan"
+#~ msgstr "ciano\t\t"
+
+#~ msgid "dark grey"
+#~ msgstr "cinza escuro"
+
+#~ msgid "magenta"
+#~ msgstr "magenta"
+
+#~ msgid "orange"
+#~ msgstr "laranja"
+
+#~ msgid "Bed (@1)"
+#~ msgstr "Cama (@1)"
+
+#~ msgid "unpainted oak"
+#~ msgstr "carvalho não pintado"
+
+#~ msgid "forest green"
+#~ msgstr "verde floresta"
+
+#~ msgid "light blue"
+#~ msgstr "azul claro"
+
+#~ msgid "Armchair (@1)"
+#~ msgstr "Poltrona (@1)"
+
#, fuzzy
#~ msgid "dark_grey"
#~ msgstr "cinza escuro"
@@ -1557,9 +1764,6 @@ msgstr "Gabinete Medicinal"
#~ msgid "someone "
#~ msgstr "alguém"
-#~ msgid "Sorry, %s owns that spot. "
-#~ msgstr "Desculpe, mas esse local pertence a %s."
-
#~ msgid "White Glowlight (small cube) "
#~ msgstr "Arandela branca (cubo pequeno)"
diff --git a/homedecor_i18n/locale/template.pot b/homedecor_i18n/locale/template.pot
index bde49c5..b4d754f 100644
--- a/homedecor_i18n/locale/template.pot
+++ b/homedecor_i18n/locale/template.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-01-30 21:31-0300\n"
+"POT-Creation-Date: 2017-02-10 05:34-0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -276,7 +276,7 @@ msgstr ""
msgid "Loaded!"
msgstr ""
-#: ../lrfurn/armchairs.lua
+#: ../lrfurn/armchairs.lua ../homedecor/furniture.lua
msgid "Armchair"
msgstr ""
@@ -313,89 +313,30 @@ msgid "Glowing Embers"
msgstr ""
#: ../fake_fire/init.lua
-msgid "Flint and steel"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
-#: ../homedecor/misc-nodes.lua ../homedecor/furniture.lua
-msgid "black"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/books.lua
-msgid "brown"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/books.lua ../homedecor/furniture.lua
-msgid "blue"
-msgstr ""
-
-#: ../homedecor/bedroom.lua
-msgid "cyan"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
-msgid "dark grey"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/furniture.lua
-msgid "dark green"
+msgid "Stone chimney top"
msgstr ""
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/exterior.lua
-#: ../homedecor/misc-nodes.lua ../homedecor/books.lua
-msgid "green"
+#: ../fake_fire/init.lua
+msgid "Sandstone chimney top"
msgstr ""
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua ../homedecor/books.lua
-msgid "grey"
+#: ../fake_fire/init.lua
+msgid "Flint and steel"
msgstr ""
-#: ../homedecor/bedroom.lua
-msgid "magenta"
+#: ../fake_fire/init.lua
+msgid "This area is protected!"
msgstr ""
#: ../homedecor/bedroom.lua
-msgid "orange"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/furniture.lua
-msgid "pink"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua
-#: ../homedecor/exterior.lua ../homedecor/books.lua ../homedecor/furniture.lua
-msgid "red"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua ../homedecor/books.lua
-#: ../homedecor/furniture.lua
-msgid "violet"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/window_treatments.lua
-#: ../homedecor/lighting.lua ../homedecor/shutters.lua
-msgid "white"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/lighting.lua ../homedecor/shutters.lua
-#: ../homedecor/exterior.lua
-msgid "yellow"
+msgid "Bed"
msgstr ""
#: ../homedecor/bedroom.lua
-msgid "Bed (@1)"
+msgid "Bed (king sized)"
msgstr ""
#: ../homedecor/bedroom.lua
-msgid "Bed (@1, king sized)"
-msgstr ""
-
-#: ../homedecor/bedroom.lua ../homedecor/shutters.lua
msgid "mahogany"
msgstr ""
@@ -452,6 +393,14 @@ msgid "Under-sink cabinet"
msgstr ""
#: ../homedecor/kitchen_furniture.lua
+msgid "Copper pans"
+msgstr ""
+
+#: ../homedecor/kitchen_furniture.lua
+msgid "Kitchen Faucet"
+msgstr ""
+
+#: ../homedecor/kitchen_furniture.lua
msgid "Paper towels"
msgstr ""
@@ -565,6 +514,18 @@ msgstr ""
msgid "Chimney"
msgstr ""
+#: ../homedecor/electrics.lua
+msgid "Power Outlet"
+msgstr ""
+
+#: ../homedecor/electrics.lua
+msgid "Light switch"
+msgstr ""
+
+#: ../homedecor/electrics.lua
+msgid "Doorbell"
+msgstr ""
+
#: ../homedecor/window_treatments.lua
msgid "Window (quartered)"
msgstr ""
@@ -607,6 +568,32 @@ msgstr ""
msgid "Stained Glass"
msgstr ""
+#: ../homedecor/window_treatments.lua ../homedecor/exterior.lua
+#: ../homedecor/furniture.lua
+msgid "red"
+msgstr ""
+
+#: ../homedecor/window_treatments.lua ../homedecor/exterior.lua
+#: ../homedecor/misc-nodes.lua
+msgid "green"
+msgstr ""
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+msgid "blue"
+msgstr ""
+
+#: ../homedecor/window_treatments.lua ../homedecor/lighting.lua
+msgid "white"
+msgstr ""
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+msgid "pink"
+msgstr ""
+
+#: ../homedecor/window_treatments.lua ../homedecor/furniture.lua
+msgid "violet"
+msgstr ""
+
#: ../homedecor/crafts.lua
msgid "Uncooked Terracotta Base"
msgstr ""
@@ -743,6 +730,34 @@ msgstr ""
msgid "Telephone"
msgstr ""
+#: ../homedecor/cobweb.lua
+msgid "Cobweb"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Plastic analog clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Wooden analog clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Digital clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Alarm clock"
+msgstr ""
+
+#: ../homedecor/clocks.lua
+msgid "Grandfather Clock"
+msgstr ""
+
+#: ../homedecor/lighting.lua ../homedecor/exterior.lua
+msgid "yellow"
+msgstr ""
+
#: ../homedecor/lighting.lua
msgid "Thick Glowlight"
msgstr ""
@@ -800,6 +815,10 @@ msgid "Hanging Lantern"
msgstr ""
#: ../homedecor/lighting.lua
+msgid "Ceiling Lantern"
+msgstr ""
+
+#: ../homedecor/lighting.lua
msgid "Lattice lantern (large)"
msgstr ""
@@ -816,7 +835,7 @@ msgid "Standing Lamp"
msgstr ""
#: ../homedecor/lighting.lua
-msgid "Desk Lamp (@1)"
+msgid "Desk Lamp"
msgstr ""
#: ../homedecor/lighting.lua
@@ -884,19 +903,7 @@ msgid "Wrought Iron fence (type 2) Corner"
msgstr ""
#: ../homedecor/shutters.lua
-msgid "unpainted oak"
-msgstr ""
-
-#: ../homedecor/shutters.lua
-msgid "forest green"
-msgstr ""
-
-#: ../homedecor/shutters.lua
-msgid "light blue"
-msgstr ""
-
-#: ../homedecor/shutters.lua
-msgid "Wooden Shutter (@1)"
+msgid "Wooden Shutter"
msgstr ""
#: ../homedecor/exterior.lua
@@ -1007,6 +1014,86 @@ msgstr ""
msgid "Radiator heater"
msgstr ""
+#: ../homedecor/wardrobe.lua
+msgid "Wardrobe"
+msgstr ""
+
+#: ../homedecor/wardrobe.lua
+msgid "Clothes"
+msgstr ""
+
+#: ../homedecor/wardrobe.lua
+msgid "Storage"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+msgid "Green Trash Can"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+msgid "Trash Can"
+msgstr ""
+
+#: ../homedecor/trash_cans.lua
+msgid "Small Trash Can"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Cutlery set"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Brown bottle"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four brown bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Green bottle"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four green bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Four misc brown/green bottles"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Wine rack"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Dartboard"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Beer tap"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Ahh, a frosty cold beer - look in your inventory for it!"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "No room in your inventory to add a beer mug!"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Beer mug"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Soda vending machine"
+msgstr ""
+
+#: ../homedecor/gastronomy.lua
+msgid "Please insert a coin in the machine."
+msgstr ""
+
#: ../homedecor/doors_and_gates.lua
msgid "Mahogany Closet Door (@1 opening)"
msgstr ""
@@ -1099,6 +1186,26 @@ msgstr ""
msgid "Japanese-style door"
msgstr ""
+#: ../homedecor/foyer.lua
+msgid "Wall-mounted coat rack"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Coat tree"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Green welcome mat"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Brown welcome mat"
+msgstr ""
+
+#: ../homedecor/foyer.lua
+msgid "Grey welcome mat"
+msgstr ""
+
#: ../homedecor/misc-nodes.lua
msgid "Textured Ceiling Paint"
msgstr ""
@@ -1123,6 +1230,10 @@ msgstr ""
msgid "Rug (@1)"
msgstr ""
+#: ../homedecor/misc-nodes.lua ../homedecor/furniture.lua
+msgid "black"
+msgstr ""
+
#: ../homedecor/misc-nodes.lua
msgid "Flower Pot (@1)"
msgstr ""
@@ -1280,7 +1391,7 @@ msgid "Legs for Utility Table"
msgstr ""
#: ../homedecor/books.lua
-msgid "Writable Book (@1)"
+msgid "Writable Book"
msgstr ""
#: ../homedecor/books.lua
@@ -1304,11 +1415,11 @@ msgid "plain"
msgstr ""
#: ../homedecor/furniture.lua
-msgid "Kitchen chair (@1)"
+msgid "dark green"
msgstr ""
#: ../homedecor/furniture.lua
-msgid "Armchair (@1)"
+msgid "Kitchen chair"
msgstr ""
#: ../homedecor/furniture.lua
@@ -1343,6 +1454,26 @@ msgstr ""
msgid "@1 (Locked)"
msgstr ""
+#: ../homedecor/handlers/expansion.lua
+msgid "Expansion placeholder (you hacker you!)"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Not enough room - the space for the headboard is occupied!"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Someone already owns the spot where the headboard goes."
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Not enough room - the upper space is occupied!"
+msgstr ""
+
+#: ../homedecor/handlers/expansion.lua
+msgid "Someone already owns that spot."
+msgstr ""
+
#: ../homedecor/handlers/furnaces.lua
msgid "Furnace"
msgstr ""
@@ -1371,44 +1502,42 @@ msgstr ""
msgid "Filing cabinet"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/grey"
-msgstr ""
-
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/dark grey"
+#: ../homedecor/office.lua
+msgid "Desk"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/black"
+#: ../homedecor/office.lua
+msgid "Desk globe"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "black/dark grey"
+#: ../homedecor/office.lua
+msgid "Calendar"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/red"
+#: ../homedecor/office.lua
+msgid ""
+"Date (right-click to update):\n"
+"@1"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/green"
+#: ../homedecor/office.lua
+msgid "Basic office chair"
msgstr ""
-#: ../homedecor/bathroom_furniture.lua
-msgid "white/blue"
+#: ../homedecor/office.lua
+msgid "Upscale office chair"
msgstr ""
#: ../homedecor/bathroom_furniture.lua
-msgid "white/yellow"
+msgid "Bathroom/kitchen tiles (dark)"
msgstr ""
#: ../homedecor/bathroom_furniture.lua
-msgid "white/tan"
+msgid "Bathroom/kitchen tiles (medium)"
msgstr ""
#: ../homedecor/bathroom_furniture.lua
-msgid "Bathroom/kitchen tiles (@1)"
+msgid "Bathroom/kitchen tiles (light)"
msgstr ""
#: ../homedecor/bathroom_furniture.lua
diff --git a/mesecons/init.lua b/mesecons/init.lua
index 7da3583..83e611b 100644
--- a/mesecons/init.lua
+++ b/mesecons/init.lua
@@ -3,7 +3,7 @@
-- | \/ | |___ ____ |___ | | | | \ | |____
-- | | | | | | | | | \ | |
-- | | |___ ____| |___ |____ |____| | \| ____|
--- by Jeija, Uberi (Temperest), sfan5, VanessaE
+-- by Jeija, Uberi (Temperest), sfan5, VanessaE, Hawk777 and contributors
--
--
--
@@ -11,7 +11,7 @@
-- See the documentation on the forum for additional information, especially about crafting
--
--
--- For developer documentation see the Developers' section on mesecons.TK
+-- For basic development resources, see http://mesecons.net/developers.html
--
--
--
@@ -74,17 +74,7 @@ mesecon.queue:add_function("receptor_on", function (pos, rules)
rules = rules or mesecon.rules.default
- -- if area (any of the rule targets) is not loaded, keep trying and call this again later
- for _, rule in ipairs(mesecon.flattenrules(rules)) do
- local np = vector.add(pos, rule)
- -- if area is not loaded, keep trying
- if minetest.get_node_or_nil(np) == nil then
- mesecon.queue:add_action(pos, "receptor_on", {rules}, nil, rules)
- return
- end
- end
-
- -- execute action
+ -- Call turnon on all linking positions
for _, rule in ipairs(mesecon.flattenrules(rules)) do
local np = vector.add(pos, rule)
local rulenames = mesecon.rules_link_rule_all(pos, rule)
@@ -103,15 +93,7 @@ end
mesecon.queue:add_function("receptor_off", function (pos, rules)
rules = rules or mesecon.rules.default
- -- if area (any of the rule targets) is not loaded, keep trying and call this again later
- for _, rule in ipairs(mesecon.flattenrules(rules)) do
- local np = vector.add(pos, rule)
- if minetest.get_node_or_nil(np) == nil then
- mesecon.queue:add_action(pos, "receptor_off", {rules}, nil, rules)
- return
- end
- end
-
+ -- Call turnoff on all linking positions
for _, rule in ipairs(mesecon.flattenrules(rules)) do
local np = vector.add(pos, rule)
local rulenames = mesecon.rules_link_rule_all(pos, rule)
diff --git a/mesecons/presets.lua b/mesecons/presets.lua
index 2f2f643..8c3ed67 100644
--- a/mesecons/presets.lua
+++ b/mesecons/presets.lua
@@ -41,12 +41,19 @@ mesecon.rules.alldirs =
mesecon.rules.buttonlike_get = function(node)
local rules = mesecon.rules.buttonlike
- if node.param2 == 2 then
+ local dir = minetest.facedir_to_dir(node.param2)
+ if dir.x == 1 then
+ -- No action needed
+ elseif dir.z == -1 then
rules=mesecon.rotate_rules_left(rules)
- elseif node.param2 == 3 then
+ elseif dir.x == -1 then
rules=mesecon.rotate_rules_right(mesecon.rotate_rules_right(rules))
- elseif node.param2 == 0 then
+ elseif dir.z == 1 then
rules=mesecon.rotate_rules_right(rules)
+ elseif dir.y == -1 then
+ rules=mesecon.rotate_rules_up(rules)
+ elseif dir.y == 1 then
+ rules=mesecon.rotate_rules_down(rules)
end
return rules
end
diff --git a/mesecons/textures/jeija_microcontroller_LED_A.png b/mesecons/textures/jeija_microcontroller_LED_A.png
new file mode 100644
index 0000000..64526cf
--- /dev/null
+++ b/mesecons/textures/jeija_microcontroller_LED_A.png
Binary files differ
diff --git a/mesecons/textures/jeija_microcontroller_LED_B.png b/mesecons/textures/jeija_microcontroller_LED_B.png
new file mode 100644
index 0000000..1f7b451
--- /dev/null
+++ b/mesecons/textures/jeija_microcontroller_LED_B.png
Binary files differ
diff --git a/mesecons/textures/jeija_microcontroller_LED_C.png b/mesecons/textures/jeija_microcontroller_LED_C.png
new file mode 100644
index 0000000..399cc2c
--- /dev/null
+++ b/mesecons/textures/jeija_microcontroller_LED_C.png
Binary files differ
diff --git a/mesecons/textures/jeija_microcontroller_LED_D.png b/mesecons/textures/jeija_microcontroller_LED_D.png
new file mode 100644
index 0000000..506389c
--- /dev/null
+++ b/mesecons/textures/jeija_microcontroller_LED_D.png
Binary files differ
diff --git a/mesecons/util.lua b/mesecons/util.lua
index c9ba7fc..39f5696 100644
--- a/mesecons/util.lua
+++ b/mesecons/util.lua
@@ -231,11 +231,6 @@ local function hash_blockpos(pos)
})
end
--- convert block hash --> node position
-local function unhash_blockpos(hash)
- return vector.multiply(minetest.get_position_from_hash(hash), BLOCKSIZE)
-end
-
-- Maps from a hashed mapblock position (as returned by hash_blockpos) to a
-- table.
--
diff --git a/mesecons_blinkyplant/doc/blinkyplant/preview.png b/mesecons_blinkyplant/doc/blinkyplant/preview.png
index 40ce5b5..40ce5b5 100644..100755
--- a/mesecons_blinkyplant/doc/blinkyplant/preview.png
+++ b/mesecons_blinkyplant/doc/blinkyplant/preview.png
Binary files differ
diff --git a/mesecons_button/init.lua b/mesecons_button/init.lua
index f287d52..11c328c 100644
--- a/mesecons_button/init.lua
+++ b/mesecons_button/init.lua
@@ -26,6 +26,7 @@ minetest.register_node("mesecons_button:button_off", {
paramtype2 = "facedir",
legacy_wallmounted = true,
walkable = false,
+ on_rotate = mesecon.buttonlike_onrotate,
sunlight_propagates = true,
selection_box = {
type = "fixed",
@@ -67,6 +68,7 @@ minetest.register_node("mesecons_button:button_on", {
paramtype2 = "facedir",
legacy_wallmounted = true,
walkable = false,
+ on_rotate = false,
light_source = default.LIGHT_MAX-7,
sunlight_propagates = true,
selection_box = {
diff --git a/mesecons_delayer/init.lua b/mesecons_delayer/init.lua
index da576ad..7c480c1 100644
--- a/mesecons_delayer/init.lua
+++ b/mesecons_delayer/init.lua
@@ -47,7 +47,8 @@ elseif i == 2 then delaytime = 0.3
elseif i == 3 then delaytime = 0.5
elseif i == 4 then delaytime = 1.0 end
-boxes = {{ -6/16, -8/16, -6/16, 6/16, -7/16, 6/16 }, -- the main slab
+local boxes = {
+ { -6/16, -8/16, -6/16, 6/16, -7/16, 6/16 }, -- the main slab
{ -2/16, -7/16, -4/16, 2/16, -26/64, -3/16 }, -- the jeweled "on" indicator
{ -3/16, -7/16, -3/16, 3/16, -26/64, -2/16 },
@@ -57,7 +58,8 @@ boxes = {{ -6/16, -8/16, -6/16, 6/16, -7/16, 6/16 }, -- the main slab
{ -6/16, -7/16, -6/16, -4/16, -27/64, -4/16 }, -- the timer indicator
{ -8/16, -8/16, -1/16, -6/16, -7/16, 1/16 }, -- the two wire stubs
- { 6/16, -8/16, -1/16, 8/16, -7/16, 1/16 }}
+ { 6/16, -8/16, -1/16, 8/16, -7/16, 1/16 }
+}
minetest.register_node("mesecons_delayer:delayer_off_"..tostring(i), {
description = "Delayer",
diff --git a/mesecons_extrawires/corner.lua b/mesecons_extrawires/corner.lua
index 1e29870..6033893 100644
--- a/mesecons_extrawires/corner.lua
+++ b/mesecons_extrawires/corner.lua
@@ -49,7 +49,7 @@ minetest.register_node("mesecons_extrawires:corner_on", {
minetest.register_node("mesecons_extrawires:corner_off", {
drawtype = "nodebox",
- description = "Mesecon Corner",
+ description = "Insulated Mesecon Corner",
tiles = {
"jeija_insulated_wire_curved_tb_off.png",
"jeija_insulated_wire_curved_tb_off.png^[transformR270",
diff --git a/mesecons_extrawires/crossover.lua b/mesecons_extrawires/crossover.lua
index 4ecfc12..8f3b8c2 100644
--- a/mesecons_extrawires/crossover.lua
+++ b/mesecons_extrawires/crossover.lua
@@ -1,4 +1,4 @@
-function crossover_get_rules(node)
+local function crossover_get_rules(node)
return {
{--first wire
{x=-1,y=0,z=0},
@@ -19,28 +19,19 @@ local crossover_states = {
}
minetest.register_node("mesecons_extrawires:crossover_off", {
- description = "Insulated Crossover",
- drawtype = "nodebox",
+ description = "Insulated Mesecon Crossover",
+ drawtype = "mesh",
+ mesh = "mesecons_extrawires_crossover.b3d",
tiles = {
- "jeija_insulated_wire_crossing_tb_off.png",
- "jeija_insulated_wire_crossing_tb_off.png",
+ "jeija_insulated_wire_ends_off.png",
+ "jeija_insulated_wire_sides_off.png",
+ "jeija_insulated_wire_sides_off.png",
"jeija_insulated_wire_ends_off.png"
},
paramtype = "light",
walkable = false,
stack_max = 99,
selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}},
- node_box = {
- type = "fixed",
- fixed = {
- { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 },
- { -3/32, -17/32, -16/32-0.001, 3/32, -13/32, -6/32 },
- { -3/32, -13/32, -9/32, 3/32, -6/32, -6/32 },
- { -3/32, -9/32, -9/32, 3/32, -6/32, 9/32 },
- { -3/32, -13/32, 6/32, 3/32, -6/32, 9/32 },
- { -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 },
- },
- },
groups = {dig_immediate=3, mesecon=3},
mesecons = {
conductor = {
@@ -53,30 +44,18 @@ minetest.register_node("mesecons_extrawires:crossover_off", {
minetest.register_node("mesecons_extrawires:crossover_01", {
description = "You hacker you!",
drop = "mesecons_extrawires:crossover_off",
- drawtype = "nodebox",
+ drawtype = "mesh",
+ mesh = "mesecons_extrawires_crossover.b3d",
tiles = {
- "jeija_insulated_wire_crossing_tb_01.png",
- "jeija_insulated_wire_crossing_tb_01.png",
- "jeija_insulated_wire_ends_01x.png",
- "jeija_insulated_wire_ends_01x.png",
- "jeija_insulated_wire_ends_01z.png",
- "jeija_insulated_wire_ends_01z.png"
+ "jeija_insulated_wire_ends_on.png",
+ "jeija_insulated_wire_sides_on.png",
+ "jeija_insulated_wire_sides_off.png",
+ "jeija_insulated_wire_ends_off.png"
},
paramtype = "light",
walkable = false,
stack_max = 99,
selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}},
- node_box = {
- type = "fixed",
- fixed = {
- { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 },
- { -3/32, -17/32, -16/32-0.001, 3/32, -13/32, -6/32 },
- { -3/32, -13/32, -9/32, 3/32, -6/32, -6/32 },
- { -3/32, -9/32, -9/32, 3/32, -6/32, 9/32 },
- { -3/32, -13/32, 6/32, 3/32, -6/32, 9/32 },
- { -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 },
- },
- },
groups = {dig_immediate=3, mesecon=3, not_in_creative_inventory=1},
mesecons = {
conductor = {
@@ -89,30 +68,18 @@ minetest.register_node("mesecons_extrawires:crossover_01", {
minetest.register_node("mesecons_extrawires:crossover_10", {
description = "You hacker you!",
drop = "mesecons_extrawires:crossover_off",
- drawtype = "nodebox",
+ drawtype = "mesh",
+ mesh = "mesecons_extrawires_crossover.b3d",
tiles = {
- "jeija_insulated_wire_crossing_tb_10.png",
- "jeija_insulated_wire_crossing_tb_10.png",
- "jeija_insulated_wire_ends_10x.png",
- "jeija_insulated_wire_ends_10x.png",
- "jeija_insulated_wire_ends_10z.png",
- "jeija_insulated_wire_ends_10z.png"
+ "jeija_insulated_wire_ends_off.png",
+ "jeija_insulated_wire_sides_off.png",
+ "jeija_insulated_wire_sides_on.png",
+ "jeija_insulated_wire_ends_on.png"
},
paramtype = "light",
walkable = false,
stack_max = 99,
selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}},
- node_box = {
- type = "fixed",
- fixed = {
- { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 },
- { -3/32, -17/32, -16/32-0.001, 3/32, -13/32, -6/32 },
- { -3/32, -13/32, -9/32, 3/32, -6/32, -6/32 },
- { -3/32, -9/32, -9/32, 3/32, -6/32, 9/32 },
- { -3/32, -13/32, 6/32, 3/32, -6/32, 9/32 },
- { -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 },
- },
- },
groups = {dig_immediate=3, mesecon=3, not_in_creative_inventory=1},
mesecons = {
conductor = {
@@ -125,30 +92,18 @@ minetest.register_node("mesecons_extrawires:crossover_10", {
minetest.register_node("mesecons_extrawires:crossover_on", {
description = "You hacker you!",
drop = "mesecons_extrawires:crossover_off",
- drawtype = "nodebox",
+ drawtype = "mesh",
+ mesh = "mesecons_extrawires_crossover.b3d",
tiles = {
- "jeija_insulated_wire_crossing_tb_on.png",
- "jeija_insulated_wire_crossing_tb_on.png",
- "jeija_insulated_wire_ends_on.png",
- "jeija_insulated_wire_ends_on.png",
"jeija_insulated_wire_ends_on.png",
+ "jeija_insulated_wire_sides_on.png",
+ "jeija_insulated_wire_sides_on.png",
"jeija_insulated_wire_ends_on.png"
},
paramtype = "light",
walkable = false,
stack_max = 99,
selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}},
- node_box = {
- type = "fixed",
- fixed = {
- { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 },
- { -3/32, -17/32, -16/32-0.001, 3/32, -13/32, -6/32 },
- { -3/32, -13/32, -9/32, 3/32, -6/32, -6/32 },
- { -3/32, -9/32, -9/32, 3/32, -6/32, 9/32 },
- { -3/32, -13/32, 6/32, 3/32, -6/32, 9/32 },
- { -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 },
- },
- },
groups = {dig_immediate=3, mesecon=3, not_in_creative_inventory=1},
mesecons = {
conductor = {
diff --git a/mesecons_extrawires/models/mesecons_extrawires_crossover.b3d b/mesecons_extrawires/models/mesecons_extrawires_crossover.b3d
new file mode 100644
index 0000000..e776535
--- /dev/null
+++ b/mesecons_extrawires/models/mesecons_extrawires_crossover.b3d
Binary files differ
diff --git a/mesecons_extrawires/src/mesecons_extrawires_crossover.blend b/mesecons_extrawires/src/mesecons_extrawires_crossover.blend
new file mode 100644
index 0000000..9ad3749
--- /dev/null
+++ b/mesecons_extrawires/src/mesecons_extrawires_crossover.blend
Binary files differ
diff --git a/mesecons_extrawires/tjunction.lua b/mesecons_extrawires/tjunction.lua
index 1091e83..70f343b 100644
--- a/mesecons_extrawires/tjunction.lua
+++ b/mesecons_extrawires/tjunction.lua
@@ -50,7 +50,7 @@ minetest.register_node("mesecons_extrawires:tjunction_on", {
minetest.register_node("mesecons_extrawires:tjunction_off", {
drawtype = "nodebox",
- description = "T-junction",
+ description = "Insulated Mesecon T-junction",
tiles = {
"jeija_insulated_wire_tjunction_tb_off.png",
"jeija_insulated_wire_tjunction_tb_off.png^[transformR180",
diff --git a/mesecons_fpga/depends.txt b/mesecons_fpga/depends.txt
new file mode 100644
index 0000000..acaa924
--- /dev/null
+++ b/mesecons_fpga/depends.txt
@@ -0,0 +1 @@
+mesecons
diff --git a/mesecons_fpga/doc/fpga/description.html b/mesecons_fpga/doc/fpga/description.html
new file mode 100644
index 0000000..be6bd65
--- /dev/null
+++ b/mesecons_fpga/doc/fpga/description.html
@@ -0,0 +1,5 @@
+FPGAs can be used to chain multiple logic gates together in a compact manner.
+They come with 4 I/O ports and 10 internal registers,
+which can then be connected with eachother to form logic circuits.<br />
+Supported gate types: <b>AND</b>, <b>OR</b>, <b>NOT</b>, <b>XOR</b>, <b>NAND</b>, <b>XNOR</b>, <b>Buffer</b> (=)<br />
+I/O ports: <b>A B C D</b>; Registers: numbered <b>0</b> to <b>9</b>
diff --git a/mesecons_fpga/doc/fpga/preview.png b/mesecons_fpga/doc/fpga/preview.png
new file mode 100644
index 0000000..c156321
--- /dev/null
+++ b/mesecons_fpga/doc/fpga/preview.png
Binary files differ
diff --git a/mesecons_fpga/doc/fpga/recipe.png b/mesecons_fpga/doc/fpga/recipe.png
new file mode 100644
index 0000000..1140bfa
--- /dev/null
+++ b/mesecons_fpga/doc/fpga/recipe.png
Binary files differ
diff --git a/mesecons_fpga/doc/programmer/description.html b/mesecons_fpga/doc/programmer/description.html
new file mode 100644
index 0000000..39e2374
--- /dev/null
+++ b/mesecons_fpga/doc/programmer/description.html
@@ -0,0 +1,3 @@
+The FPGA programmer can be used to copy gate configurations from one FPGA to another.<br />
+Shift+Right-Click an FPGA to read its configuration and "remember" it.
+Left-click (punch) FPGAs to write the saved configuration to them.
diff --git a/mesecons_fpga/doc/programmer/preview.png b/mesecons_fpga/doc/programmer/preview.png
new file mode 100644
index 0000000..7437d39
--- /dev/null
+++ b/mesecons_fpga/doc/programmer/preview.png
Binary files differ
diff --git a/mesecons_fpga/doc/programmer/recipe.png b/mesecons_fpga/doc/programmer/recipe.png
new file mode 100644
index 0000000..778ec5f
--- /dev/null
+++ b/mesecons_fpga/doc/programmer/recipe.png
Binary files differ
diff --git a/mesecons_fpga/init.lua b/mesecons_fpga/init.lua
new file mode 100644
index 0000000..6c462e6
--- /dev/null
+++ b/mesecons_fpga/init.lua
@@ -0,0 +1,375 @@
+local plg = {}
+plg.rules = {}
+
+local lcore = dofile(minetest.get_modpath(minetest.get_current_modname()) .. "/logic.lua")
+dofile(minetest.get_modpath(minetest.get_current_modname()) .. "/tool.lua")(plg)
+
+
+plg.register_nodes = function(template)
+ -- each loop is for one of the 4 IO ports
+ for a = 0, 1 do
+ for b = 0, 1 do
+ for c = 0, 1 do
+ for d = 0, 1 do
+ local ndef = table.copy(template)
+ local nodename = "mesecons_fpga:fpga"
+ .. tostring(d) .. tostring(c) .. tostring(b) .. tostring(a)
+
+ -- build top texture string
+ local texture = "jeija_fpga_top.png"
+ if a == 1 then texture = texture .. "^jeija_microcontroller_LED_A.png" end
+ if b == 1 then texture = texture .. "^jeija_microcontroller_LED_B.png" end
+ if c == 1 then texture = texture .. "^jeija_microcontroller_LED_C.png" end
+ if d == 1 then texture = texture .. "^jeija_microcontroller_LED_D.png" end
+ ndef.tiles[1] = texture
+ ndef.inventory_image = texture
+
+ if (a + b + c + d) > 0 then
+ ndef.groups["not_in_creative_inventory"] = 1
+ end
+
+ -- interaction with mesecons (input / output)
+ local rules_out = {}
+ if a == 1 then table.insert(rules_out, {x = -1, y = 0, z = 0}) end
+ if b == 1 then table.insert(rules_out, {x = 0, y = 0, z = 1}) end
+ if c == 1 then table.insert(rules_out, {x = 1, y = 0, z = 0}) end
+ if d == 1 then table.insert(rules_out, {x = 0, y = 0, z = -1}) end
+ plg.rules[nodename] = rules_out
+
+ local rules_in = {}
+ if a == 0 then table.insert(rules_in, {x = -1, y = 0, z = 0}) end
+ if b == 0 then table.insert(rules_in, {x = 0, y = 0, z = 1}) end
+ if c == 0 then table.insert(rules_in, {x = 1, y = 0, z = 0}) end
+ if d == 0 then table.insert(rules_in, {x = 0, y = 0, z = -1}) end
+ ndef.mesecons.effector.rules = rules_in
+
+ if (a + b + c + d) > 0 then
+ ndef.mesecons.receptor = {
+ state = mesecon.state.on,
+ rules = rules_out,
+ }
+ end
+
+ minetest.register_node(nodename, ndef)
+ end
+ end
+ end
+ end
+end
+
+plg.register_nodes({
+ description = "FPGA",
+ drawtype = "nodebox",
+ tiles = {
+ "", -- replaced later
+ "jeija_microcontroller_bottom.png",
+ "jeija_fpga_sides.png",
+ "jeija_fpga_sides.png",
+ "jeija_fpga_sides.png",
+ "jeija_fpga_sides.png"
+ },
+ inventory_image = "", -- replaced later
+ sunlight_propagates = true,
+ paramtype = "light",
+ walkable = true,
+ groups = {dig_immediate = 2, mesecon = 3},
+ drop = "mesecons_fpga:fpga0000",
+ selection_box = {
+ type = "fixed",
+ fixed = { -8/16, -8/16, -8/16, 8/16, -5/16, 8/16 },
+ },
+ node_box = {
+ type = "fixed",
+ fixed = {
+ { -8/16, -8/16, -8/16, 8/16, -7/16, 8/16 }, -- bottom slab
+ { -5/16, -7/16, -5/16, 5/16, -6/16, 5/16 }, -- circuit board
+ { -3/16, -6/16, -3/16, 3/16, -5/16, 3/16 }, -- IC
+ }
+ },
+ on_construct = function(pos)
+ local meta = minetest.get_meta(pos)
+ local is = { {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {} }
+
+ meta:set_string("instr", lcore.serialize(is))
+ meta:set_int("valid", 0)
+ meta:set_string("formspec", plg.to_formspec_string(is))
+ meta:set_string("infotext", "FPGA")
+ end,
+ on_receive_fields = function(pos, formname, fields, sender)
+ if fields.program == nil then return end -- we only care when the user clicks "Program"
+ local meta = minetest.get_meta(pos)
+ local is = plg.from_formspec_fields(fields)
+
+ meta:set_string("instr", lcore.serialize(is))
+ plg.update_formspec(pos, is)
+ end,
+ sounds = default.node_sound_stone_defaults(),
+ mesecons = {
+ effector = {
+ rules = {}, -- replaced later
+ action_change = function(pos, node, rule, newstate)
+ plg.ports_changed(pos, rule, newstate)
+ plg.update(pos)
+ end
+ }
+ },
+ after_dig_node = function(pos, node)
+ mesecon.receptor_off(pos, plg.rules[node.name])
+ end,
+})
+
+
+plg.to_formspec_string = function(is)
+ local function dropdown_op(x, y, name, val)
+ local s = "dropdown[" .. tostring(x) .. "," .. tostring(y) .. ";"
+ .. "0.75,0.5;" .. name .. ";" -- the height seems to be ignored?
+ s = s .. " ,A,B,C,D,0,1,2,3,4,5,6,7,8,9;"
+ if val == nil then
+ s = s .. "0" -- actually selects no field at all
+ elseif val.type == "io" then
+ local mapping = {
+ ["A"] = 1,
+ ["B"] = 2,
+ ["C"] = 3,
+ ["D"] = 4,
+ }
+ s = s .. tostring(1 + mapping[val.port])
+ else -- "reg"
+ s = s .. tostring(6 + val.n)
+ end
+ return s .. "]"
+ end
+ local function dropdown_action(x, y, name, val)
+ local s = "dropdown[" .. tostring(x) .. "," .. tostring(y) .. ";"
+ .. "1.125,0.5;" .. name .. ";" -- the height seems to be ignored?
+ s = s .. " , AND, OR, NOT, XOR,NAND, =,XNOR;"
+ if val == nil then
+ return s .. "0]" -- actually selects no field at all
+ end
+ local mapping = {
+ ["and"] = 1,
+ ["or"] = 2,
+ ["not"] = 3,
+ ["xor"] = 4,
+ ["nand"] = 5,
+ ["buf"] = 6,
+ ["xnor"] = 7,
+ }
+ return s .. tostring(1 + mapping[val]) .. "]"
+ end
+ local s = "size[9,9]"..
+ "label[3.4,-0.15;FPGA gate configuration]"..
+ "button_exit[7,7.5;2,2.5;program;Program]"..
+ "box[4.2,0.5;0.03,7;#ffffff]"..
+ "label[0.25,0.25;op. 1]"..
+ "label[1.0,0.25;gate type]"..
+ "label[2.125,0.25;op. 2]"..
+ "label[3.15,0.25;dest]"..
+ "label[4.5,0.25;op. 1]"..
+ "label[5.25,0.25;gate type]"..
+ "label[6.375,0.25;op. 2]"..
+ "label[7.4,0.25;dest]"
+ local x = 1 - 0.75
+ local y = 1 - 0.25
+ for i = 1, 14 do
+ local cur = is[i]
+ s = s .. dropdown_op (x , y, tostring(i).."op1", cur.op1)
+ s = s .. dropdown_action(x+0.75 , y, tostring(i).."act", cur.action)
+ s = s .. dropdown_op (x+1.875, y, tostring(i).."op2", cur.op2)
+ s = s .. "label[" .. tostring(x+2.625) .. "," .. tostring(y+0.1) .. "; ->]"
+ s = s .. dropdown_op (x+2.9 , y, tostring(i).."dst", cur.dst)
+ y = y + 1
+
+ if i == 7 then
+ x = 4.5
+ y = 1 - 0.25
+ end
+ end
+ return s
+end
+
+plg.from_formspec_fields = function(fields)
+ local function read_op(s)
+ if s == nil or s == " " then
+ return nil
+ elseif s == "A" or s == "B" or s == "C" or s == "D" then
+ return {type = "io", port = s}
+ else
+ return {type = "reg", n = tonumber(s)}
+ end
+ end
+ local function read_action(s)
+ if s == nil or s == " " then
+ return nil
+ end
+ local mapping = {
+ ["AND"] = "and",
+ ["OR"] = "or",
+ ["NOT"] = "not",
+ ["XOR"] = "xor",
+ ["NAND"] = "nand",
+ ["="] = "buf",
+ ["XNOR"] = "xnor",
+ }
+ s = s:gsub("^%s*", "") -- remove leading spaces
+ return mapping[s]
+ end
+ local is = {}
+ for i = 1, 14 do
+ local cur = {}
+ cur.op1 = read_op(fields[tonumber(i) .. "op1"])
+ cur.action = read_action(fields[tonumber(i) .. "act"])
+ cur.op2 = read_op(fields[tonumber(i) .. "op2"])
+ cur.dst = read_op(fields[tonumber(i) .. "dst"])
+ is[#is + 1] = cur
+ end
+ return is
+end
+
+plg.update_formspec = function(pos, is)
+ if type(is) == "string" then -- serialized string
+ is = lcore.deserialize(is)
+ end
+ local meta = minetest.get_meta(pos)
+ local form = plg.to_formspec_string(is)
+
+ local err = lcore.validate(is)
+ if err == nil then
+ meta:set_int("valid", 1)
+ meta:set_string("infotext", "FPGA (functional)")
+ else
+ meta:set_int("valid", 0)
+ meta:set_string("infotext", "FPGA")
+ local fmsg = minetest.colorize("#ff0000", minetest.formspec_escape(err.msg))
+ form = form .. plg.red_box_around(err.i) ..
+ "label[0.25,8.25;The gate configuration is erroneous in the marked area:]"..
+ "label[0.25,8.5;" .. fmsg .. "]"
+ end
+
+ meta:set_string("formspec", form)
+
+ -- reset ports and run programmed logic
+ plg.setports(pos, false, false, false, false)
+ plg.update(pos)
+end
+
+plg.red_box_around = function(i)
+ local x, y
+ if i > 7 then
+ x = 4.5
+ y = 0.75 + (i - 8)
+ else
+ x = 0.25
+ y = 0.75 + (i - 1)
+ end
+ return string.format("box[%f,%f;3.8,0.8;#ff0000]", x-0.1, y-0.05)
+end
+
+
+plg.update = function(pos)
+ local meta = minetest.get_meta(pos)
+ if meta:get_int("valid") ~= 1 then
+ return
+ end
+
+ local is = lcore.deserialize(meta:get_string("instr"))
+ local A, B, C, D = plg.getports(pos)
+ A, B, C, D = lcore.interpret(is, A, B, C, D)
+ plg.setports(pos, A, B, C, D)
+end
+
+plg.ports_changed = function(pos, rule, newstate)
+ if rule == nil then return end
+ local meta = minetest.get_meta(pos)
+ local states
+
+ local s = meta:get_string("portstates")
+ if s == nil then
+ states = {false, false, false, false}
+ else
+ states = {
+ s:sub(1, 1) == "1",
+ s:sub(2, 2) == "1",
+ s:sub(3, 3) == "1",
+ s:sub(4, 4) == "1",
+ }
+ end
+
+ -- trick to transform rules (see register_node) into port number
+ local portno = ({4, 1, nil, 3, 2})[3 + rule.x + 2*rule.z]
+ states[portno] = (newstate == "on")
+
+ meta:set_string("portstates",
+ (states[1] and "1" or "0") .. (states[2] and "1" or "0") ..
+ (states[3] and "1" or "0") .. (states[4] and "1" or "0")
+ )
+end
+
+plg.getports = function(pos) -- gets merged states of INPUT & OUTPUT
+ local sin, sout
+
+ local s = minetest.get_meta(pos):get_string("portstates")
+ if s == nil then
+ sin = {false, false, false, false}
+ else
+ sin = {
+ s:sub(1, 1) == "1",
+ s:sub(2, 2) == "1",
+ s:sub(3, 3) == "1",
+ s:sub(4, 4) == "1",
+ }
+ end
+
+ local name = minetest.get_node(pos).name
+ assert(name:find("mesecons_fpga:fpga") == 1)
+ local off = #"mesecons_fpga:fpga"
+ sout = {
+ name:sub(off+4, off+4) == "1",
+ name:sub(off+3, off+3) == "1",
+ name:sub(off+2, off+2) == "1",
+ name:sub(off+1, off+1) == "1",
+ }
+
+ return unpack({
+ sin[1] or sout[1],
+ sin[2] or sout[2],
+ sin[3] or sout[3],
+ sin[4] or sout[4],
+ })
+end
+
+plg.setports = function(pos, A, B, C, D) -- sets states of OUTPUT
+ local base = "mesecons_fpga:fpga"
+
+ local name = base
+ .. (D and "1" or "0") .. (C and "1" or "0")
+ .. (B and "1" or "0") .. (A and "1" or "0")
+ minetest.swap_node(pos, {name = name, param2 = minetest.get_node(pos).param2})
+
+ if A ~= nil then
+ local ru = plg.rules[base .. "0001"]
+ if A then mesecon.receptor_on(pos, ru) else mesecon.receptor_off(pos, ru) end
+ end
+ if B ~= nil then
+ local ru = plg.rules[base .. "0010"]
+ if B then mesecon.receptor_on(pos, ru) else mesecon.receptor_off(pos, ru) end
+ end
+ if C ~= nil then
+ local ru = plg.rules[base .. "0100"]
+ if C then mesecon.receptor_on(pos, ru) else mesecon.receptor_off(pos, ru) end
+ end
+ if D ~= nil then
+ local ru = plg.rules[base .. "1000"]
+ if D then mesecon.receptor_on(pos, ru) else mesecon.receptor_off(pos, ru) end
+ end
+end
+
+
+minetest.register_craft({
+ output = "mesecons_fpga:fpga0000 2",
+ recipe = {
+ {'group:mesecon_conductor_craftable', 'group:mesecon_conductor_craftable'},
+ {'mesecons_materials:silicon', 'mesecons_materials:silicon'},
+ {'group:mesecon_conductor_craftable', 'group:mesecon_conductor_craftable'},
+ }
+})
diff --git a/mesecons_fpga/logic.lua b/mesecons_fpga/logic.lua
new file mode 100644
index 0000000..3dca154
--- /dev/null
+++ b/mesecons_fpga/logic.lua
@@ -0,0 +1,210 @@
+local lg = {}
+
+-- (de)serialize
+lg.serialize = function(t)
+ local function _op(t)
+ if t == nil then
+ return " "
+ elseif t.type == "io" then
+ return t.port
+ else -- t.type == "reg"
+ return tostring(t.n)
+ end
+ end
+ local function _action(s)
+ if s == nil then
+ return " "
+ end
+ local mapping = {
+ ["and"] = "&",
+ ["or"] = "|",
+ ["not"] = "~",
+ ["xor"] = "^",
+ ["nand"] = "?", --dunno
+ ["buf"] = "_",
+ ["xnor"] = "=",
+ }
+ return mapping[s]
+ end
+
+ local s = ""
+ for i = 1, 14 do
+ local cur = t[i]
+ if next(cur) ~= nil then
+ s = s .. _op(cur.op1) .. _action(cur.action) .. _op(cur.op2) .. _op(cur.dst)
+ end
+ s = s .. "/"
+ end
+ return s
+end
+
+lg.deserialize = function(s)
+ local function _op(c)
+ if c == "A" or c == "B" or c == "C" or c == "D" then
+ return {type = "io", port = c}
+ elseif c == " " then
+ return nil
+ else
+ return {type = "reg", n = tonumber(c)}
+ end
+ end
+ local function _action(c)
+ local mapping = {
+ ["&"] = "and",
+ ["|"] = "or",
+ ["~"] = "not",
+ ["^"] = "xor",
+ ["?"] = "nand",
+ ["_"] = "buf",
+ ["="] = "xnor",
+ [" "] = nil,
+ }
+ return mapping[c]
+ end
+
+ local ret = {}
+ for part in s:gmatch("(.-)/") do
+ local parsed
+ if part == "" then
+ parsed = {}
+ else
+ parsed = {
+ action = _action( part:sub(2,2) ),
+ op1 = _op( part:sub(1,1) ),
+ op2 = _op( part:sub(3,3) ),
+ dst = _op( part:sub(4,4) ),
+ }
+ end
+ ret[#ret + 1] = parsed
+ end
+ -- More than 14 instructions (write to all 10 regs + 4 outputs)
+ -- will not pass the write-once requirement of the validator
+ assert(#ret == 14)
+ return ret
+end
+
+-- validation
+lg.validate_single = function(t, i)
+ local function is_reg_written_to(t, n, max)
+ for i = 1, max-1 do
+ if next(t[i]) ~= nil
+ and t[i].dst and t[i].dst.type == "reg"
+ and t[i].dst.n == n then
+ return true
+ end
+ end
+ return false
+ end
+ local function compare_op(t1, t2, allow_same_io)
+ if t1 == nil or t2 == nil then
+ return false
+ elseif t1.type ~= t2.type then
+ return false
+ end
+ if t1.type == "reg" and t1.n == t2.n then
+ return true
+ elseif t1.type == "io" and t1.port == t2.port then
+ return not allow_same_io
+ end
+ return false
+ end
+ local elem = t[i]
+ -- check for completeness
+ if elem.action == nil then
+ return {i = i, msg = "Gate type required"}
+ elseif elem.action == "not" or elem.action == "buf" then
+ if elem.op1 ~= nil or elem.op2 == nil or elem.dst == nil then
+ return {i = i, msg = "Second operand (only) and destination required"}
+ end
+ else
+ if elem.op1 == nil or elem.op2 == nil or elem.dst == nil then
+ return {i = i, msg = "Operands and destination required"}
+ end
+ end
+ -- check whether operands/destination are identical
+ if compare_op(elem.op1, elem.op2) then
+ return {i = i, msg = "Operands cannot be identical"}
+ end
+ if compare_op(elem.op1, elem.dst, true) or compare_op(elem.op2, elem.dst, true) then
+ return {i = i, msg = "Destination and operands must be different"}
+ end
+ -- check whether operands point to defined registers
+ if elem.op1 ~= nil and elem.op1.type == "reg"
+ and not is_reg_written_to(t, elem.op1.n, i) then
+ return {i = i, msg = "First operand is undefined register"}
+ end
+ if elem.op2.type == "reg" and not is_reg_written_to(t, elem.op2.n, i) then
+ return {i = i, msg = "Second operand is undefined register"}
+ end
+ -- check whether destination points to undefined register
+ if elem.dst.type == "reg" and is_reg_written_to(t, elem.dst.n, i) then
+ return {i = i, msg = "Destination is already used register"}
+ end
+
+ return nil
+end
+
+lg.validate = function(t)
+ for i = 1, 14 do
+ if next(t[i]) ~= nil then
+ local r = lg.validate_single(t, i)
+ if r ~= nil then
+ return r
+ end
+ end
+ end
+ return nil
+end
+
+-- interpreter
+lg.interpret = function(t, a, b, c, d)
+ local function _action(s, v1, v2)
+ if s == "and" then
+ return v1 and v2
+ elseif s == "or" then
+ return v1 or v2
+ elseif s == "not" then
+ return not v2
+ elseif s == "xor" then
+ return v1 ~= v2
+ elseif s == "nand" then
+ return not (v1 and v2)
+ elseif s == "buf" then
+ return v2
+ else -- s == "xnor"
+ return v1 == v2
+ end
+ end
+ local function _op(t, regs, io_in)
+ if t.type == "reg" then
+ return regs[t.n]
+ else -- t.type == "io"
+ return io_in[t.port]
+ end
+ end
+
+ local io_in = {A=a, B=b, C=c, D=d}
+ local regs = {}
+ local io_out = {}
+ for i = 1, 14 do
+ local cur = t[i]
+ if next(cur) ~= nil then
+ local v1, v2
+ if cur.op1 ~= nil then
+ v1 = _op(cur.op1, regs, io_in)
+ end
+ v2 = _op(cur.op2, regs, io_in)
+
+ local result = _action(cur.action, v1, v2)
+
+ if cur.dst.type == "reg" then
+ regs[cur.dst.n] = result
+ else -- cur.dst.type == "io"
+ io_out[cur.dst.port] = result
+ end
+ end
+ end
+ return io_out.A, io_out.B, io_out.C, io_out.D
+end
+
+return lg
diff --git a/mesecons_fpga/textures/jeija_fpga_programmer.png b/mesecons_fpga/textures/jeija_fpga_programmer.png
new file mode 100644
index 0000000..9c0ba8f
--- /dev/null
+++ b/mesecons_fpga/textures/jeija_fpga_programmer.png
Binary files differ
diff --git a/mesecons_fpga/textures/jeija_fpga_sides.png b/mesecons_fpga/textures/jeija_fpga_sides.png
new file mode 100644
index 0000000..e2d8e15
--- /dev/null
+++ b/mesecons_fpga/textures/jeija_fpga_sides.png
Binary files differ
diff --git a/mesecons_fpga/textures/jeija_fpga_top.png b/mesecons_fpga/textures/jeija_fpga_top.png
new file mode 100644
index 0000000..eaf1a1c
--- /dev/null
+++ b/mesecons_fpga/textures/jeija_fpga_top.png
Binary files differ
diff --git a/mesecons_fpga/tool.lua b/mesecons_fpga/tool.lua
new file mode 100644
index 0000000..26ab49e
--- /dev/null
+++ b/mesecons_fpga/tool.lua
@@ -0,0 +1,62 @@
+return function(plg)
+
+
+minetest.register_tool("mesecons_fpga:programmer", {
+ description = "FPGA Programmer",
+ inventory_image = "jeija_fpga_programmer.png",
+ stack_max = 1,
+ on_place = function(itemstack, placer, pointed_thing)
+ if pointed_thing.type ~= "node" then
+ return itemstack
+ end
+
+ local pos = pointed_thing.under
+ if minetest.get_node(pos).name:find("mesecons_fpga:fpga") ~= 1 then
+ return itemstack
+ end
+
+ local meta = minetest.get_meta(pos)
+ if meta:get_string("instr") == "//////////////" then
+ minetest.chat_send_player(placer:get_player_name(), "This FPGA is unprogrammed.")
+ return itemstack
+ end
+ itemstack:set_metadata(meta:get_string("instr"))
+ minetest.chat_send_player(placer:get_player_name(), "FPGA gate configuration was successfully copied!")
+
+ return itemstack
+ end,
+ on_use = function(itemstack, user, pointed_thing)
+ if pointed_thing.type ~= "node" then
+ return itemstack
+ end
+
+ local pos = pointed_thing.under
+ if minetest.get_node(pos).name:find("mesecons_fpga:fpga") ~= 1 then
+ return itemstack
+ end
+
+ local imeta = itemstack:get_metadata()
+ if imeta == "" then
+ minetest.chat_send_player(user:get_player_name(), "Use shift+right-click to copy a gate configuration first.")
+ return itemstack
+ end
+
+ local meta = minetest.get_meta(pos)
+ meta:set_string("instr", imeta)
+ plg.update_formspec(pos, imeta)
+ minetest.chat_send_player(user:get_player_name(), "Gate configuration was successfully written to FPGA!")
+
+ return itemstack
+ end
+})
+
+minetest.register_craft({
+ output = "mesecons_fpga:programmer",
+ recipe = {
+ {'group:mesecon_conductor_craftable'},
+ {'mesecons_materials:silicon'},
+ }
+})
+
+
+end
diff --git a/mesecons_gates/init.lua b/mesecons_gates/init.lua
index f3d6f09..57815ef 100644
--- a/mesecons_gates/init.lua
+++ b/mesecons_gates/init.lua
@@ -54,7 +54,7 @@ local function update_gate(pos, node, link, newstate)
end
end
-function register_gate(name, inputnumber, assess, recipe)
+local function register_gate(name, inputnumber, assess, recipe)
local get_inputrules = inputnumber == 2 and gate_get_input_rules_twoinputs or
gate_get_input_rules_oneinput
local description = "Mesecons Logic Gate: "..name
diff --git a/mesecons_hydroturbine/init.lua b/mesecons_hydroturbine/init.lua
index f1292e9..409da75 100644
--- a/mesecons_hydroturbine/init.lua
+++ b/mesecons_hydroturbine/init.lua
@@ -5,12 +5,12 @@
minetest.register_node("mesecons_hydroturbine:hydro_turbine_off", {
drawtype = "mesh",
- mesh = "jeija_hydro_turbine.obj",
+ mesh = "jeija_hydro_turbine_off.obj",
tiles = {
"jeija_hydro_turbine_sides_off.png",
"jeija_hydro_turbine_top_bottom.png",
- "jeija_hydro_turbine_turbine_top_bottom.png",
- "jeija_hydro_turbine_turbine_misc.png"
+ "jeija_hydro_turbine_turbine_top_bottom_off.png",
+ "jeija_hydro_turbine_turbine_misc_off.png"
},
inventory_image = "jeija_hydro_turbine_inv.png",
wield_scale = {x=0.75, y=0.75, z=0.75},
@@ -29,13 +29,15 @@ minetest.register_node("mesecons_hydroturbine:hydro_turbine_off", {
minetest.register_node("mesecons_hydroturbine:hydro_turbine_on", {
drawtype = "mesh",
- mesh = "jeija_hydro_turbine.obj",
+ mesh = "jeija_hydro_turbine_on.obj",
wield_scale = {x=0.75, y=0.75, z=0.75},
tiles = {
"jeija_hydro_turbine_sides_on.png",
"jeija_hydro_turbine_top_bottom.png",
- "jeija_hydro_turbine_turbine_top_bottom.png",
- "jeija_hydro_turbine_turbine_misc.png"
+ { name = "jeija_hydro_turbine_turbine_top_bottom_on.png",
+ animation = {type = "vertical_frames", aspect_w = 128, aspect_h = 16, length = 1.6} },
+ { name = "jeija_hydro_turbine_turbine_misc_on.png",
+ animation = {type = "vertical_frames", aspect_w = 256, aspect_h = 32, length = 0.4} }
},
inventory_image = "jeija_hydro_turbine_inv.png",
drop = "mesecons_hydroturbine:hydro_turbine_off 1",
@@ -53,13 +55,20 @@ minetest.register_node("mesecons_hydroturbine:hydro_turbine_on", {
})
+local function is_flowing_water(pos)
+ local name = minetest.get_node(pos).name
+ local is_water = minetest.get_item_group(name, "water") > 0
+ local is_flowing = minetest.registered_items[name].liquidtype == "flowing"
+ return (is_water and is_flowing)
+end
+
minetest.register_abm({
nodenames = {"mesecons_hydroturbine:hydro_turbine_off"},
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local waterpos={x=pos.x, y=pos.y+1, z=pos.z}
- if minetest.get_node(waterpos).name=="default:water_flowing" then
+ if is_flowing_water(waterpos) then
minetest.set_node(pos, {name="mesecons_hydroturbine:hydro_turbine_on"})
nodeupdate(pos)
mesecon.receptor_on(pos)
@@ -73,7 +82,7 @@ nodenames = {"mesecons_hydroturbine:hydro_turbine_on"},
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local waterpos={x=pos.x, y=pos.y+1, z=pos.z}
- if minetest.get_node(waterpos).name~="default:water_flowing" then
+ if not is_flowing_water(waterpos) then
minetest.set_node(pos, {name="mesecons_hydroturbine:hydro_turbine_off"})
nodeupdate(pos)
mesecon.receptor_off(pos)
diff --git a/mesecons_hydroturbine/models/jeija_hydro_turbine_off.obj b/mesecons_hydroturbine/models/jeija_hydro_turbine_off.obj
new file mode 100644
index 0000000..5cd5c96
--- /dev/null
+++ b/mesecons_hydroturbine/models/jeija_hydro_turbine_off.obj
@@ -0,0 +1,429 @@
+# Blender v2.72 (sub 0) OBJ File: 'mesecons-water-turbine.blend'
+# www.blender.org
+o Cylinder.002_Cylinder.003
+v 0.000000 0.496094 -0.150000
+v 0.000000 0.562500 -0.150000
+v 0.106066 0.496094 -0.106066
+v 0.106066 0.562500 -0.106066
+v 0.150000 0.496094 0.000000
+v 0.150000 0.562500 0.000000
+v 0.106066 0.496094 0.106066
+v 0.106066 0.562500 0.106066
+v -0.000000 0.496094 0.150000
+v -0.000000 0.562500 0.150000
+v -0.106066 0.496094 0.106066
+v -0.106066 0.562500 0.106066
+v -0.150000 0.496094 -0.000000
+v -0.150000 0.562500 -0.000000
+v -0.106066 0.496094 -0.106066
+v -0.106066 0.562500 -0.106066
+v 0.097545 0.625000 -0.490393
+v -0.097545 0.625000 -0.490393
+v -0.277785 0.625000 -0.415735
+v -0.415735 0.625000 -0.277785
+v -0.490393 0.625000 -0.097545
+v -0.490393 0.625000 0.097545
+v -0.415735 0.625000 0.277785
+v -0.277785 0.625000 0.415735
+v -0.097545 0.625000 0.490393
+v 0.097545 0.625000 0.490393
+v 0.277785 0.625000 0.415735
+v 0.415735 0.625000 0.277785
+v 0.490393 0.625000 0.097545
+v 0.490393 0.625000 -0.097545
+v 0.415735 0.625000 -0.277785
+v 0.277785 0.625000 -0.415735
+v 0.097545 0.656250 -0.490393
+v -0.097545 0.656250 -0.490393
+v -0.277785 0.656250 -0.415735
+v -0.415735 0.656250 -0.277785
+v -0.490393 0.656250 -0.097545
+v -0.490393 0.656250 0.097545
+v -0.415735 0.656250 0.277785
+v -0.277785 0.656250 0.415735
+v -0.097545 0.656250 0.490393
+v 0.097545 0.656250 0.490393
+v 0.277785 0.656250 0.415735
+v 0.415735 0.656250 0.277785
+v 0.490393 0.656250 0.097545
+v 0.490393 0.656250 -0.097545
+v 0.415735 0.656250 -0.277785
+v 0.277785 0.656250 -0.415735
+v 0.116233 0.634645 -0.436100
+v 0.116233 1.482640 -0.436100
+v 0.299524 0.634645 -0.186124
+v 0.299524 1.482640 -0.186124
+v 0.343405 0.634645 0.080186
+v 0.343405 1.482640 0.080186
+v 0.186124 0.634645 0.299524
+v 0.186124 1.482640 0.299524
+v -0.080186 0.634645 0.343405
+v -0.080186 1.482640 0.343405
+v -0.299524 0.634645 0.186124
+v -0.299524 1.482640 0.186124
+v -0.343405 0.634645 -0.080186
+v -0.343405 1.482640 -0.080186
+v -0.186124 0.634645 -0.299524
+v -0.186124 1.482640 -0.299524
+v 0.080186 0.634645 -0.343405
+v 0.080186 1.482640 -0.343405
+v 0.390559 1.482640 -0.226180
+v 0.390559 0.634645 -0.226180
+v 0.436100 1.482640 0.116233
+v 0.436100 0.634645 0.116233
+v 0.226180 1.482640 0.390559
+v 0.226180 0.634645 0.390559
+v -0.116233 1.482640 0.436100
+v -0.116233 0.634645 0.436100
+v -0.390559 1.482640 0.226180
+v -0.390559 0.634645 0.226180
+v -0.436100 1.482640 -0.116233
+v -0.436100 0.634645 -0.116233
+v -0.226180 1.482640 -0.390559
+v -0.226180 0.634645 -0.390559
+v 0.108975 0.634645 -0.430778
+v 0.292266 0.634645 -0.180802
+v 0.292266 1.482640 -0.180802
+v 0.108975 1.482640 -0.430778
+v 0.381664 0.634645 -0.227549
+v 0.334509 0.634645 0.078817
+v 0.334509 1.482640 0.078817
+v 0.381664 1.482640 -0.227549
+v 0.430778 0.634645 0.108975
+v 0.180802 0.634645 0.292266
+v 0.180802 1.482640 0.292266
+v 0.430778 1.482640 0.108975
+v 0.227549 0.634645 0.381664
+v -0.078817 0.634645 0.334509
+v -0.078817 1.482640 0.334509
+v 0.227549 1.482640 0.381664
+v -0.108975 0.634645 0.430778
+v -0.292266 0.634645 0.180802
+v -0.292266 1.482640 0.180802
+v -0.108975 1.482640 0.430778
+v -0.381664 0.634645 0.227549
+v -0.334509 0.634645 -0.078817
+v -0.334509 1.482640 -0.078817
+v -0.381664 1.482640 0.227549
+v -0.227549 0.634645 -0.381663
+v 0.078817 0.634645 -0.334509
+v 0.078817 1.482640 -0.334509
+v -0.227549 1.482640 -0.381663
+v -0.430779 0.634645 -0.108975
+v -0.180802 0.634645 -0.292266
+v -0.180802 1.482640 -0.292266
+v -0.430779 1.482640 -0.108975
+v 0.097545 1.496094 -0.490393
+v -0.097545 1.496094 -0.490393
+v -0.277785 1.496094 -0.415735
+v -0.415735 1.496094 -0.277785
+v -0.490393 1.496094 -0.097545
+v -0.490393 1.496094 0.097545
+v -0.415735 1.496094 0.277785
+v -0.277785 1.496094 0.415735
+v -0.097545 1.496094 0.490393
+v 0.097545 1.496094 0.490393
+v 0.277785 1.496094 0.415735
+v 0.415735 1.496094 0.277785
+v 0.490393 1.496094 0.097545
+v 0.490393 1.496094 -0.097545
+v 0.415735 1.496094 -0.277785
+v 0.277785 1.496094 -0.415735
+v 0.097545 1.464844 -0.490393
+v -0.097545 1.464844 -0.490393
+v -0.277785 1.464844 -0.415735
+v -0.415735 1.464844 -0.277785
+v -0.490393 1.464844 -0.097545
+v -0.490393 1.464844 0.097545
+v -0.415735 1.464844 0.277785
+v -0.277785 1.464844 0.415735
+v -0.097545 1.464844 0.490393
+v 0.097545 1.464844 0.490393
+v 0.277785 1.464844 0.415735
+v 0.415735 1.464844 0.277785
+v 0.490393 1.464844 0.097545
+v 0.490393 1.464844 -0.097545
+v 0.415735 1.464844 -0.277785
+v 0.277785 1.464844 -0.415735
+v 0.025624 0.559630 -0.061863
+v 0.025624 1.481372 -0.061863
+v 0.061863 0.559630 -0.025624
+v 0.061863 1.481372 -0.025624
+v 0.061863 0.559630 0.025624
+v 0.061863 1.481372 0.025624
+v 0.025624 0.559630 0.061863
+v 0.025624 1.481372 0.061863
+v -0.025624 0.559630 0.061863
+v -0.025624 1.481372 0.061863
+v -0.061863 0.559630 0.025624
+v -0.061863 1.481372 0.025624
+v -0.061863 0.559630 -0.025624
+v -0.061863 1.481372 -0.025624
+v -0.025624 0.559630 -0.061863
+v -0.025624 1.481372 -0.061863
+v 0.496094 -0.496094 -0.496094
+v 0.496094 -0.496094 0.496094
+v -0.496094 -0.496094 0.496094
+v -0.496094 -0.496094 -0.496094
+v 0.496094 0.496094 -0.496094
+v 0.496094 0.496094 0.496094
+v -0.496094 0.496094 0.496094
+v -0.496094 0.496094 -0.496094
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.000000
+vt 0.400544 1.000000
+vt 0.599456 1.000000
+vt 0.783227 0.923880
+vt 0.923880 0.783227
+vt 1.000000 0.599456
+vt 1.000000 0.400544
+vt 0.923880 0.216773
+vt 0.783227 0.076120
+vt 0.599456 0.000000
+vt 0.400544 0.000000
+vt 0.216773 0.076121
+vt 0.076120 0.216773
+vt 0.000000 0.400544
+vt 0.000000 0.599456
+vt 0.076121 0.783227
+vt 0.216773 0.923880
+vt 0.500000 0.343750
+vt 0.531250 0.343750
+vt 0.531250 0.375000
+vt 0.500000 0.375000
+vt 0.531250 0.406250
+vt 0.500000 0.406250
+vt 0.500000 0.531250
+vt 0.531250 0.531250
+vt 0.531250 0.500000
+vt 0.500000 0.500000
+vt 0.531250 0.468750
+vt 0.500000 0.468750
+vt 0.531250 0.437500
+vt 0.500000 0.437500
+vt 0.593750 0.468750
+vt 0.625000 0.437500
+vt 0.656250 0.437500
+vt 0.687500 0.468750
+vt 0.687500 0.500000
+vt 0.656250 0.531250
+vt 0.625000 0.531250
+vt 0.593750 0.500000
+vt 0.500000 0.312500
+vt 0.531250 0.312500
+vt 0.500000 0.281250
+vt 0.531250 0.281250
+vt 0.156250 0.750000
+vt 0.156250 0.875000
+vt 0.125000 0.875000
+vt 0.125000 0.750000
+vt 0.156250 0.625000
+vt 0.125000 0.625000
+vt 0.156250 0.500000
+vt 0.125000 0.500000
+vt 0.156250 0.375000
+vt 0.125000 0.375000
+vt 0.156250 0.250000
+vt 0.125000 0.250000
+vt 0.250000 0.500000
+vt 0.250000 0.625000
+vt 0.218750 0.625000
+vt 0.218750 0.500000
+vt 0.156250 0.125000
+vt 0.125000 0.125000
+vt 0.156250 -0.000000
+vt 0.125000 -0.000000
+vt 0.250000 0.375000
+vt 0.218750 0.375000
+vt 0.250000 0.875000
+vt 0.250000 1.000000
+vt 0.218750 1.000000
+vt 0.218750 0.875000
+vt 0.250000 0.250000
+vt 0.218750 0.250000
+vt 0.250000 0.750000
+vt 0.218750 0.750000
+vt 0.250000 0.125000
+vt 0.218750 0.125000
+vt 0.250000 -0.000000
+vt 0.218750 -0.000000
+vt 0.156250 1.000000
+vt 0.125000 1.000000
+vt 0.781250 0.593750
+vt 0.781250 0.968750
+vt 0.656250 0.968750
+vt 0.656250 0.593750
+vt 0.625000 0.593750
+vt 0.625000 0.968750
+vt 0.500000 0.968750
+vt 0.500000 0.593750
+vt 0.406250 -0.000000
+vt 0.437500 -0.000000
+vt 0.437500 0.125000
+vt 0.406250 0.125000
+vt 0.312500 0.875000
+vt 0.343750 0.875000
+vt 0.343750 1.000000
+vt 0.312500 1.000000
+vt 0.312500 0.750000
+vt 0.343750 0.750000
+vt 0.312500 0.625000
+vt 0.343750 0.625000
+vt 0.312500 0.500000
+vt 0.343750 0.500000
+vt 0.406250 0.750000
+vt 0.437500 0.750000
+vt 0.437500 0.875000
+vt 0.406250 0.875000
+vt 0.312500 0.375000
+vt 0.343750 0.375000
+vt 0.312500 0.250000
+vt 0.343750 0.250000
+vt 0.406250 0.625000
+vt 0.437500 0.625000
+vt 0.312500 0.125000
+vt 0.343750 0.125000
+vt 0.406250 0.500000
+vt 0.437500 0.500000
+vt 0.312500 -0.000000
+vt 0.343750 -0.000000
+vt 0.406250 0.375000
+vt 0.437500 0.375000
+vt 0.437500 1.000000
+vt 0.406250 1.000000
+vt 0.406250 0.250000
+vt 0.437500 0.250000
+vt 0.031250 0.937500
+vt 0.062500 0.937500
+vt 0.062500 0.968750
+vt 0.031250 0.968750
+vt 0.031250 0.718750
+vt 0.062500 0.718750
+vt 0.062500 0.750000
+vt 0.031250 0.750000
+vt 0.062500 0.781250
+vt 0.031250 0.781250
+vt 0.062500 0.812500
+vt 0.031250 0.812500
+vt 0.062500 0.843750
+vt 0.031250 0.843750
+vt 0.062500 0.875000
+vt 0.031250 0.875000
+vt 0.031250 0.906250
+vt 0.062500 0.906250
+vn 1.000000 0.000000 0.000000
+vn 0.000000 0.000000 1.000000
+vn -1.000000 0.000000 0.000000
+vn 0.000000 0.000000 -1.000000
+vn 0.000000 -1.000000 0.000000
+vn 0.000000 1.000000 0.000000
+vn 0.382700 0.000000 -0.923900
+vn 0.923900 0.000000 -0.382700
+vn 0.923900 0.000000 0.382700
+vn 0.382700 0.000000 0.923900
+vn -0.382700 0.000000 0.923900
+vn -0.923900 0.000000 0.382700
+vn -0.382700 0.000000 -0.923900
+vn -0.923900 0.000000 -0.382700
+vn 0.707100 0.000000 0.707100
+vn -0.707100 0.000000 0.707100
+vn 0.707100 0.000000 -0.707100
+vn -0.707100 0.000000 -0.707100
+vn 0.806400 0.000000 -0.591300
+vn 0.988400 0.000000 0.152100
+vn 0.591300 0.000000 0.806400
+vn -0.152100 0.000000 0.988400
+vn -0.806400 0.000000 0.591300
+vn -0.988400 0.000000 -0.152100
+vn 0.152100 0.000000 -0.988400
+vn -0.591300 0.000000 -0.806400
+g Cylinder.002_Cylinder.003_sides
+s off
+f 161/1/1 165/2/1 166/3/1 162/4/1
+f 162/1/2 166/2/2 167/3/2 163/4/2
+f 163/4/3 167/3/3 168/2/3 164/1/3
+f 165/2/4 161/1/4 164/4/4 168/3/4
+g Cylinder.002_Cylinder.003_top-bottom
+f 161/2/5 162/1/5 163/4/5 164/3/5
+f 165/2/6 168/3/6 167/4/6 166/1/6
+g Cylinder.002_Cylinder.003_turbine-top-bottom
+f 130/5/5 129/6/5 144/7/5 143/8/5 142/9/5 141/10/5 140/11/5 139/12/5 138/13/5 137/14/5 136/15/5 135/16/5 134/17/5 133/18/5 132/19/5 131/20/5
+f 18/5/5 17/6/5 32/7/5 31/8/5 30/9/5 29/10/5 28/11/5 27/12/5 26/13/5 25/14/5 24/15/5 23/16/5 22/17/5 21/18/5 20/19/5 19/20/5
+f 33/6/6 34/5/6 35/20/6 36/19/6 37/18/6 38/17/6 39/16/6 40/15/6 41/14/6 42/13/6 43/12/6 44/11/6 45/10/6 46/9/6 47/8/6 48/7/6
+f 113/6/6 114/5/6 115/20/6 116/19/6 117/18/6 118/17/6 119/16/6 120/15/6 121/14/6 122/13/6 123/12/6 124/11/6 125/10/6 126/9/6 127/8/6 128/7/6
+g Cylinder.002_Cylinder.003_turbine-blades-etc
+f 1/21/7 2/22/7 4/23/7 3/24/7
+f 3/24/8 4/23/8 6/25/8 5/26/8
+f 5/27/9 6/28/9 8/29/9 7/30/9
+f 7/30/10 8/29/10 10/31/10 9/32/10
+f 9/32/11 10/31/11 12/33/11 11/34/11
+f 11/34/12 12/33/12 14/25/12 13/26/12
+f 4/35/6 2/36/6 16/37/6 14/38/6 12/39/6 10/40/6 8/41/6 6/42/6
+f 15/43/13 16/44/13 2/22/13 1/21/13
+f 13/45/14 14/46/14 16/44/14 15/43/14
+f 27/47/15 28/48/15 44/49/15 43/50/15
+f 26/51/10 27/47/10 43/50/10 42/52/10
+f 25/53/2 26/51/2 42/52/2 41/54/2
+f 24/55/11 25/53/11 41/54/11 40/56/11
+f 23/57/16 24/55/16 40/56/16 39/58/16
+f 17/59/4 18/60/4 34/61/4 33/62/4
+f 22/63/12 23/57/12 39/58/12 38/64/12
+f 21/65/3 22/63/3 38/64/3 37/66/3
+f 32/67/7 17/59/7 33/62/7 48/68/7
+f 20/69/14 21/70/14 37/71/14 36/72/14
+f 31/73/17 32/67/17 48/68/17 47/74/17
+f 19/75/18 20/69/18 36/72/18 35/76/18
+f 30/77/8 31/73/8 47/74/8 46/78/8
+f 18/60/13 19/75/13 35/76/13 34/61/13
+f 29/79/1 30/77/1 46/78/1 45/80/1
+f 28/48/9 29/81/9 45/82/9 44/49/9
+f 49/83/19 50/84/19 52/85/19 51/86/19
+f 68/86/20 67/83/20 54/84/20 53/85/20
+f 70/83/21 69/84/21 56/85/21 55/86/21
+f 72/84/22 71/85/22 58/86/22 57/83/22
+f 74/83/23 73/84/23 60/85/23 59/86/23
+f 76/83/24 75/84/24 62/85/24 61/86/24
+f 80/84/25 79/85/25 66/86/25 65/83/25
+f 78/83/26 77/84/26 64/85/26 63/86/26
+f 81/87/23 82/88/23 83/89/23 84/90/23
+f 85/88/24 86/89/24 87/90/24 88/87/24
+f 89/89/26 90/90/26 91/87/26 92/88/26
+f 93/90/25 94/87/25 95/88/25 96/89/25
+f 97/90/19 98/87/19 99/88/19 100/89/19
+f 101/87/20 102/88/20 103/89/20 104/90/20
+f 105/90/22 106/87/22 107/88/22 108/89/22
+f 109/89/21 110/90/21 111/87/21 112/88/21
+f 75/88/22 76/87/22 101/86/22 104/85/22
+f 71/88/20 72/87/20 93/86/20 96/85/20
+f 67/86/25 68/85/25 85/88/25 88/87/25
+f 79/86/24 80/85/24 105/88/24 108/87/24
+f 77/88/23 78/87/23 109/86/23 112/85/23
+f 73/88/21 74/87/21 97/86/21 100/85/21
+f 69/86/19 70/85/19 89/88/19 92/87/19
+f 50/86/26 49/85/26 81/88/26 84/87/26
+f 123/91/15 139/92/15 140/93/15 124/94/15
+f 122/95/10 138/96/10 139/97/10 123/98/10
+f 121/99/2 137/100/2 138/96/2 122/95/2
+f 120/101/11 136/102/11 137/100/11 121/99/11
+f 119/103/16 135/104/16 136/102/16 120/101/16
+f 113/105/4 129/106/4 130/107/4 114/108/4
+f 118/109/12 134/110/12 135/104/12 119/103/12
+f 117/111/3 133/112/3 134/110/3 118/109/3
+f 128/113/7 144/114/7 129/106/7 113/105/7
+f 116/115/14 132/116/14 133/112/14 117/111/14
+f 127/117/17 143/118/17 144/114/17 128/113/17
+f 115/119/18 131/120/18 132/116/18 116/115/18
+f 126/121/8 142/122/8 143/118/8 127/117/8
+f 114/108/13 130/107/13 131/123/13 115/124/13
+f 125/125/1 141/126/1 142/122/1 126/121/1
+f 124/94/9 140/93/9 141/126/9 125/125/9
+f 145/127/17 146/128/17 148/129/17 147/130/17
+f 147/131/1 148/132/1 150/133/1 149/134/1
+f 149/134/15 150/133/15 152/135/15 151/136/15
+f 151/136/2 152/135/2 154/137/2 153/138/2
+f 153/138/16 154/137/16 156/139/16 155/140/16
+f 155/140/3 156/139/3 158/141/3 157/142/3
+f 159/143/4 160/144/4 146/128/4 145/127/4
+f 157/142/18 158/141/18 160/144/18 159/143/18
diff --git a/mesecons_hydroturbine/models/jeija_hydro_turbine_on.obj b/mesecons_hydroturbine/models/jeija_hydro_turbine_on.obj
new file mode 100644
index 0000000..e02501b
--- /dev/null
+++ b/mesecons_hydroturbine/models/jeija_hydro_turbine_on.obj
@@ -0,0 +1,2061 @@
+# Blender v2.72 (sub 0) OBJ File: 'mesecons-water-turbine_on.blend'
+# www.blender.org
+o Cylinder.002_Cylinder.003
+v 0.000000 0.496094 -0.150000
+v 0.000000 0.562500 -0.150000
+v 0.106066 0.496094 -0.106066
+v 0.106066 0.562500 -0.106066
+v 0.150000 0.496094 0.000000
+v 0.150000 0.562500 0.000000
+v 0.106066 0.496094 0.106066
+v 0.106066 0.562500 0.106066
+v -0.000000 0.496094 0.150000
+v -0.000000 0.562500 0.150000
+v -0.106066 0.496094 0.106066
+v -0.106066 0.562500 0.106066
+v -0.150000 0.496094 -0.000000
+v -0.150000 0.562500 -0.000000
+v -0.106066 0.496094 -0.106066
+v -0.106066 0.562500 -0.106066
+v 0.097545 0.625000 -0.490393
+v -0.097545 0.625000 -0.490393
+v -0.277785 0.625000 -0.415735
+v -0.415735 0.625000 -0.277785
+v -0.490393 0.625000 -0.097545
+v -0.490393 0.625000 0.097545
+v -0.415735 0.625000 0.277785
+v -0.277785 0.625000 0.415735
+v -0.097545 0.625000 0.490393
+v 0.097545 0.625000 0.490393
+v 0.277785 0.625000 0.415735
+v 0.415735 0.625000 0.277785
+v 0.490393 0.625000 0.097545
+v 0.490393 0.625000 -0.097545
+v 0.415735 0.625000 -0.277785
+v 0.277785 0.625000 -0.415735
+v 0.097545 0.656250 -0.490393
+v -0.097545 0.656250 -0.490393
+v -0.277785 0.656250 -0.415735
+v -0.415735 0.656250 -0.277785
+v -0.490393 0.656250 -0.097545
+v -0.490393 0.656250 0.097545
+v -0.415735 0.656250 0.277785
+v -0.277785 0.656250 0.415735
+v -0.097545 0.656250 0.490393
+v 0.097545 0.656250 0.490393
+v 0.277785 0.656250 0.415735
+v 0.415735 0.656250 0.277785
+v 0.490393 0.656250 0.097545
+v 0.490393 0.656250 -0.097545
+v 0.415735 0.656250 -0.277785
+v 0.277785 0.656250 -0.415735
+v 0.116233 0.634645 -0.436100
+v 0.116233 1.482640 -0.436100
+v 0.299524 0.634645 -0.186124
+v 0.299524 1.482640 -0.186124
+v 0.343405 0.634645 0.080186
+v 0.343405 1.482640 0.080186
+v 0.186124 0.634645 0.299524
+v 0.186124 1.482640 0.299524
+v -0.080186 0.634645 0.343405
+v -0.080186 1.482640 0.343405
+v -0.299524 0.634645 0.186124
+v -0.299524 1.482640 0.186124
+v -0.343405 0.634645 -0.080186
+v -0.343405 1.482640 -0.080186
+v -0.186124 0.634645 -0.299524
+v -0.186124 1.482640 -0.299524
+v 0.080186 0.634645 -0.343405
+v 0.080186 1.482640 -0.343405
+v 0.390559 1.482640 -0.226180
+v 0.390559 0.634645 -0.226180
+v 0.436100 1.482640 0.116233
+v 0.436100 0.634645 0.116233
+v 0.226180 1.482640 0.390559
+v 0.226180 0.634645 0.390559
+v -0.116233 1.482640 0.436100
+v -0.116233 0.634645 0.436100
+v -0.390559 1.482640 0.226180
+v -0.390559 0.634645 0.226180
+v -0.436100 1.482640 -0.116233
+v -0.436100 0.634645 -0.116233
+v -0.226180 1.482640 -0.390559
+v -0.226180 0.634645 -0.390559
+v 0.108975 0.634645 -0.430778
+v 0.292266 0.634645 -0.180802
+v 0.292266 1.482640 -0.180802
+v 0.108975 1.482640 -0.430778
+v 0.381664 0.634645 -0.227549
+v 0.334509 0.634645 0.078817
+v 0.334509 1.482640 0.078817
+v 0.381664 1.482640 -0.227549
+v 0.430778 0.634645 0.108975
+v 0.180802 0.634645 0.292266
+v 0.180802 1.482640 0.292266
+v 0.430778 1.482640 0.108975
+v 0.227549 0.634645 0.381664
+v -0.078817 0.634645 0.334509
+v -0.078817 1.482640 0.334509
+v 0.227549 1.482640 0.381664
+v -0.108975 0.634645 0.430778
+v -0.292266 0.634645 0.180802
+v -0.292266 1.482640 0.180802
+v -0.108975 1.482640 0.430778
+v -0.381664 0.634645 0.227549
+v -0.334509 0.634645 -0.078817
+v -0.334509 1.482640 -0.078817
+v -0.381664 1.482640 0.227549
+v -0.227549 0.634645 -0.381663
+v 0.078817 0.634645 -0.334509
+v 0.078817 1.482640 -0.334509
+v -0.227549 1.482640 -0.381663
+v -0.430779 0.634645 -0.108975
+v -0.180802 0.634645 -0.292266
+v -0.180802 1.482640 -0.292266
+v -0.430779 1.482640 -0.108975
+v 0.097545 1.496094 -0.490393
+v -0.097545 1.496094 -0.490393
+v -0.277785 1.496094 -0.415735
+v -0.415735 1.496094 -0.277785
+v -0.490393 1.496094 -0.097545
+v -0.490393 1.496094 0.097545
+v -0.415735 1.496094 0.277785
+v -0.277785 1.496094 0.415735
+v -0.097545 1.496094 0.490393
+v 0.097545 1.496094 0.490393
+v 0.277785 1.496094 0.415735
+v 0.415735 1.496094 0.277785
+v 0.490393 1.496094 0.097545
+v 0.490393 1.496094 -0.097545
+v 0.415735 1.496094 -0.277785
+v 0.277785 1.496094 -0.415735
+v 0.097545 1.464844 -0.490393
+v -0.097545 1.464844 -0.490393
+v -0.277785 1.464844 -0.415735
+v -0.415735 1.464844 -0.277785
+v -0.490393 1.464844 -0.097545
+v -0.490393 1.464844 0.097545
+v -0.415735 1.464844 0.277785
+v -0.277785 1.464844 0.415735
+v -0.097545 1.464844 0.490393
+v 0.097545 1.464844 0.490393
+v 0.277785 1.464844 0.415735
+v 0.415735 1.464844 0.277785
+v 0.490393 1.464844 0.097545
+v 0.490393 1.464844 -0.097545
+v 0.415735 1.464844 -0.277785
+v 0.277785 1.464844 -0.415735
+v 0.025624 0.559630 -0.061863
+v 0.025624 1.481372 -0.061863
+v 0.061863 0.559630 -0.025624
+v 0.061863 1.481372 -0.025624
+v 0.061863 0.559630 0.025624
+v 0.061863 1.481372 0.025624
+v 0.025624 0.559630 0.061863
+v 0.025624 1.481372 0.061863
+v -0.025624 0.559630 0.061863
+v -0.025624 1.481372 0.061863
+v -0.061863 0.559630 0.025624
+v -0.061863 1.481372 0.025624
+v -0.061863 0.559630 -0.025624
+v -0.061863 1.481372 -0.025624
+v -0.025624 0.559630 -0.061863
+v -0.025624 1.481372 -0.061863
+v 0.496094 -0.496094 -0.496094
+v 0.496094 -0.496094 0.496094
+v -0.496094 -0.496094 0.496094
+v -0.496094 -0.496094 -0.496094
+v 0.496094 0.496094 -0.496094
+v 0.496094 0.496094 0.496094
+v -0.496094 0.496094 0.496094
+v -0.496094 0.496094 -0.496094
+v 0.199079 0.634645 -0.405045
+v 0.199079 1.482640 -0.405045
+v 0.330079 0.634645 -0.124113
+v 0.330079 1.482640 -0.124113
+v 0.321163 0.634645 0.145640
+v 0.321163 1.482640 0.145640
+v 0.124113 0.634645 0.330079
+v 0.124113 1.482640 0.330079
+v -0.145640 0.634645 0.321163
+v -0.145640 1.482640 0.321163
+v -0.330079 0.634645 0.124113
+v -0.330079 1.482640 0.124113
+v -0.321163 0.634645 -0.145640
+v -0.321163 1.482640 -0.145640
+v -0.124113 0.634645 -0.330079
+v -0.124113 1.482640 -0.330079
+v 0.145640 0.634645 -0.321163
+v 0.145640 1.482640 -0.321163
+v 0.427180 1.482640 -0.145640
+v 0.427180 0.634645 -0.145640
+v 0.405045 1.482640 0.199079
+v 0.405045 0.634645 0.199079
+v 0.145640 1.482640 0.427180
+v 0.145640 0.634645 0.427180
+v -0.199079 1.482640 0.405045
+v -0.199079 0.634645 0.405045
+v -0.427180 1.482640 0.145640
+v -0.427180 0.634645 0.145640
+v -0.405045 1.482640 -0.199079
+v -0.405045 0.634645 -0.199079
+v -0.145640 1.482640 -0.427180
+v -0.145640 0.634645 -0.427180
+v 0.190922 0.634645 -0.401241
+v 0.321922 0.634645 -0.120310
+v 0.321922 1.482640 -0.120310
+v 0.190922 1.482640 -0.401241
+v 0.418723 0.634645 -0.148718
+v 0.312705 0.634645 0.142562
+v 0.312705 1.482640 0.142562
+v 0.418723 1.482640 -0.148718
+v 0.401241 0.634645 0.190922
+v 0.120310 0.634645 0.321923
+v 0.120310 1.482640 0.321923
+v 0.401241 1.482640 0.190922
+v 0.148718 0.634645 0.418723
+v -0.142562 0.634645 0.312705
+v -0.142562 1.482640 0.312705
+v 0.148718 1.482640 0.418723
+v -0.190922 0.634645 0.401241
+v -0.321923 0.634645 0.120310
+v -0.321923 1.482640 0.120310
+v -0.190922 1.482640 0.401241
+v -0.418723 0.634645 0.148718
+v -0.312705 0.634645 -0.142562
+v -0.312705 1.482640 -0.142562
+v -0.418723 1.482640 0.148718
+v -0.148718 0.634645 -0.418723
+v 0.142562 0.634645 -0.312705
+v 0.142562 1.482640 -0.312705
+v -0.148718 1.482640 -0.418723
+v -0.401241 0.634645 -0.190922
+v -0.120310 0.634645 -0.321923
+v -0.120310 1.482640 -0.321923
+v -0.401241 1.482640 -0.190922
+v 0.274274 0.634645 -0.358424
+v 0.274274 1.482640 -0.358424
+v 0.347950 0.634645 -0.057333
+v 0.347950 1.482640 -0.057333
+v 0.286579 0.634645 0.205497
+v 0.286579 1.482640 0.205497
+v 0.057333 0.634645 0.347950
+v 0.057333 1.482640 0.347950
+v -0.205497 0.634645 0.286579
+v -0.205497 1.482640 0.286579
+v -0.347950 0.634645 0.057333
+v -0.347950 1.482640 0.057333
+v -0.286579 0.634645 -0.205497
+v -0.286579 1.482640 -0.205497
+v -0.057333 0.634645 -0.347950
+v -0.057333 1.482640 -0.347950
+v 0.205497 0.634645 -0.286579
+v 0.205497 1.482640 -0.286579
+v 0.447385 1.482640 -0.059503
+v 0.447385 0.634645 -0.059503
+v 0.358424 1.482640 0.274274
+v 0.358424 0.634645 0.274274
+v 0.059503 1.482640 0.447385
+v 0.059503 0.634645 0.447385
+v -0.274274 1.482640 0.358424
+v -0.274274 0.634645 0.358424
+v -0.447385 1.482640 0.059503
+v -0.447385 0.634645 0.059503
+v -0.358424 1.482640 -0.274274
+v -0.358424 0.634645 -0.274274
+v -0.059503 1.482640 -0.447385
+v -0.059503 0.634645 -0.447385
+v 0.265532 0.634645 -0.356284
+v 0.339208 0.634645 -0.055194
+v 0.339208 1.482640 -0.055194
+v 0.265532 1.482640 -0.356284
+v 0.439690 0.634645 -0.064172
+v 0.278885 0.634645 0.200828
+v 0.278885 1.482640 0.200828
+v 0.439690 1.482640 -0.064172
+v 0.356284 0.634645 0.265532
+v 0.055194 0.634645 0.339208
+v 0.055194 1.482640 0.339208
+v 0.356284 1.482640 0.265532
+v 0.064172 0.634645 0.439690
+v -0.200828 0.634645 0.278884
+v -0.200828 1.482640 0.278884
+v 0.064172 1.482640 0.439690
+v -0.265532 0.634645 0.356284
+v -0.339208 0.634645 0.055194
+v -0.339208 1.482640 0.055194
+v -0.265532 1.482640 0.356284
+v -0.439690 0.634645 0.064172
+v -0.278885 0.634645 -0.200828
+v -0.278885 1.482640 -0.200828
+v -0.439690 1.482640 0.064172
+v -0.064172 0.634645 -0.439690
+v 0.200828 0.634645 -0.278884
+v 0.200828 1.482640 -0.278884
+v -0.064172 1.482640 -0.439690
+v -0.356284 0.634645 -0.265532
+v -0.055194 0.634645 -0.339208
+v -0.055194 1.482640 -0.339208
+v -0.356284 1.482640 -0.265532
+v 0.338929 0.634645 -0.298028
+v 0.338929 1.482640 -0.298028
+v 0.352449 0.634645 0.011650
+v 0.352449 1.482640 0.011650
+v 0.240981 0.634645 0.257457
+v 0.240981 1.482640 0.257457
+v -0.011650 0.634645 0.352450
+v -0.011650 1.482640 0.352450
+v -0.257458 0.634645 0.240982
+v -0.257458 1.482640 0.240982
+v -0.352450 0.634645 -0.011650
+v -0.352450 1.482640 -0.011650
+v -0.240982 0.634645 -0.257457
+v -0.240982 1.482640 -0.257457
+v 0.011650 0.634645 -0.352450
+v 0.011650 1.482640 -0.352450
+v 0.257457 0.634645 -0.240982
+v 0.257457 1.482640 -0.240982
+v 0.450397 1.482640 0.028921
+v 0.450397 0.634645 0.028921
+v 0.298028 1.482640 0.338929
+v 0.298028 0.634645 0.338929
+v -0.028921 1.482640 0.450397
+v -0.028921 0.634645 0.450397
+v -0.338929 1.482640 0.298028
+v -0.338929 0.634645 0.298028
+v -0.450397 1.482640 -0.028921
+v -0.450397 0.634645 -0.028921
+v -0.298029 1.482640 -0.338929
+v -0.298029 0.634645 -0.338929
+v 0.028921 1.482640 -0.450397
+v 0.028921 0.634645 -0.450397
+v 0.329937 0.634645 -0.297636
+v 0.343458 0.634645 0.012043
+v 0.343458 1.482640 0.012043
+v 0.329937 1.482640 -0.297636
+v 0.443761 0.634645 0.022841
+v 0.234346 0.634645 0.251377
+v 0.234346 1.482640 0.251377
+v 0.443761 1.482640 0.022841
+v 0.297636 0.634645 0.329937
+v -0.012043 0.634645 0.343458
+v -0.012043 1.482640 0.343458
+v 0.297636 1.482640 0.329937
+v -0.022841 0.634645 0.443761
+v -0.251377 0.634645 0.234346
+v -0.251377 1.482640 0.234346
+v -0.022841 1.482640 0.443761
+v -0.329938 0.634645 0.297636
+v -0.343458 0.634645 -0.012043
+v -0.343458 1.482640 -0.012043
+v -0.329938 1.482640 0.297636
+v -0.443762 0.634645 -0.022841
+v -0.234346 0.634645 -0.251377
+v -0.234346 1.482640 -0.251377
+v -0.443762 1.482640 -0.022841
+v 0.022840 0.634645 -0.443761
+v 0.251377 0.634645 -0.234346
+v 0.251377 1.482640 -0.234346
+v 0.022840 1.482640 -0.443761
+v -0.297636 0.634645 -0.329937
+v 0.012042 0.634645 -0.343458
+v 0.012042 1.482640 -0.343458
+v -0.297636 1.482640 -0.329937
+v 0.191342 0.625000 -0.461940
+v 0.000000 0.625000 -0.500000
+v -0.191342 0.625000 -0.461940
+v -0.353553 0.625000 -0.353554
+v -0.461940 0.625000 -0.191342
+v -0.500000 0.625000 0.000000
+v -0.461940 0.625000 0.191342
+v -0.353554 0.625000 0.353553
+v -0.191342 0.625000 0.461940
+v -0.000000 0.625000 0.500000
+v 0.191342 0.625000 0.461940
+v 0.353553 0.625000 0.353554
+v 0.461940 0.625000 0.191342
+v 0.500000 0.625000 0.000000
+v 0.461940 0.625000 -0.191342
+v 0.353553 0.625000 -0.353554
+v 0.191342 0.656250 -0.461940
+v 0.000000 0.656250 -0.500000
+v -0.191342 0.656250 -0.461940
+v -0.353553 0.656250 -0.353554
+v -0.461940 0.656250 -0.191342
+v -0.500000 0.656250 0.000000
+v -0.461940 0.656250 0.191342
+v -0.353554 0.656250 0.353553
+v -0.191342 0.656250 0.461940
+v -0.000000 0.656250 0.500000
+v 0.191342 0.656250 0.461940
+v 0.353553 0.656250 0.353554
+v 0.461940 0.656250 0.191342
+v 0.500000 0.656250 0.000000
+v 0.461940 0.656250 -0.191342
+v 0.353553 0.656250 -0.353554
+v 0.191342 1.496094 -0.461940
+v 0.000000 1.496094 -0.500000
+v -0.191342 1.496094 -0.461940
+v -0.353553 1.496094 -0.353554
+v -0.461940 1.496094 -0.191342
+v -0.500000 1.496094 -0.000000
+v -0.461940 1.496094 0.191342
+v -0.353554 1.496094 0.353553
+v -0.191342 1.496094 0.461940
+v -0.000000 1.496094 0.500000
+v 0.191342 1.496094 0.461940
+v 0.353553 1.496094 0.353553
+v 0.461940 1.496094 0.191342
+v 0.500000 1.496094 0.000000
+v 0.461940 1.496094 -0.191342
+v 0.353553 1.496094 -0.353554
+v 0.191342 1.464844 -0.461940
+v 0.000000 1.464844 -0.500000
+v -0.191342 1.464844 -0.461940
+v -0.353553 1.464844 -0.353554
+v -0.461940 1.464844 -0.191342
+v -0.500000 1.464844 -0.000000
+v -0.461940 1.464844 0.191342
+v -0.353554 1.464844 0.353553
+v -0.191342 1.464844 0.461940
+v -0.000000 1.464844 0.500000
+v 0.191342 1.464844 0.461940
+v 0.353553 1.464844 0.353553
+v 0.461940 1.464844 0.191342
+v 0.500000 1.464844 0.000000
+v 0.461940 1.464844 -0.191342
+v 0.353553 1.464844 -0.353554
+v 0.277785 0.625000 -0.415735
+v 0.097545 0.625000 -0.490393
+v -0.097545 0.625000 -0.490393
+v -0.277785 0.625000 -0.415735
+v -0.415735 0.625000 -0.277785
+v -0.490393 0.625000 -0.097545
+v -0.490393 0.625000 0.097545
+v -0.415735 0.625000 0.277785
+v -0.277785 0.625000 0.415735
+v -0.097545 0.625000 0.490393
+v 0.097545 0.625000 0.490393
+v 0.277785 0.625000 0.415735
+v 0.415735 0.625000 0.277785
+v 0.490393 0.625000 0.097545
+v 0.490393 0.625000 -0.097545
+v 0.415735 0.625000 -0.277785
+v 0.277785 0.656250 -0.415735
+v 0.097545 0.656250 -0.490393
+v -0.097545 0.656250 -0.490393
+v -0.277785 0.656250 -0.415735
+v -0.415735 0.656250 -0.277785
+v -0.490393 0.656250 -0.097545
+v -0.490393 0.656250 0.097545
+v -0.415735 0.656250 0.277785
+v -0.277785 0.656250 0.415735
+v -0.097545 0.656250 0.490393
+v 0.097545 0.656250 0.490393
+v 0.277785 0.656250 0.415735
+v 0.415735 0.656250 0.277785
+v 0.490393 0.656250 0.097545
+v 0.490393 0.656250 -0.097545
+v 0.415735 0.656250 -0.277785
+v 0.277785 1.496094 -0.415735
+v 0.097545 1.496094 -0.490393
+v -0.097545 1.496094 -0.490393
+v -0.277785 1.496094 -0.415735
+v -0.415735 1.496094 -0.277785
+v -0.490393 1.496094 -0.097545
+v -0.490393 1.496094 0.097545
+v -0.415735 1.496094 0.277785
+v -0.277785 1.496094 0.415735
+v -0.097545 1.496094 0.490393
+v 0.097545 1.496094 0.490393
+v 0.277785 1.496094 0.415735
+v 0.415735 1.496094 0.277785
+v 0.490393 1.496094 0.097545
+v 0.490393 1.496094 -0.097545
+v 0.415735 1.496094 -0.277785
+v 0.277785 1.464844 -0.415735
+v 0.097545 1.464844 -0.490393
+v -0.097545 1.464844 -0.490393
+v -0.277785 1.464844 -0.415735
+v -0.415735 1.464844 -0.277785
+v -0.490393 1.464844 -0.097545
+v -0.490393 1.464844 0.097545
+v -0.415735 1.464844 0.277785
+v -0.277785 1.464844 0.415735
+v -0.097545 1.464844 0.490393
+v 0.097545 1.464844 0.490393
+v 0.277785 1.464844 0.415735
+v 0.415735 1.464844 0.277785
+v 0.490393 1.464844 0.097545
+v 0.490393 1.464844 -0.097545
+v 0.415735 1.464844 -0.277785
+v 0.353553 0.625000 -0.353553
+v 0.191342 0.625000 -0.461940
+v 0.000000 0.625000 -0.500000
+v -0.191342 0.625000 -0.461940
+v -0.353553 0.625000 -0.353554
+v -0.461940 0.625000 -0.191342
+v -0.500000 0.625000 0.000000
+v -0.461940 0.625000 0.191342
+v -0.353554 0.625000 0.353553
+v -0.191342 0.625000 0.461940
+v -0.000001 0.625000 0.500000
+v 0.191341 0.625000 0.461940
+v 0.353553 0.625000 0.353554
+v 0.461940 0.625000 0.191342
+v 0.500000 0.625000 0.000000
+v 0.461940 0.625000 -0.191342
+v 0.353553 0.656250 -0.353553
+v 0.191342 0.656250 -0.461940
+v 0.000000 0.656250 -0.500000
+v -0.191342 0.656250 -0.461940
+v -0.353553 0.656250 -0.353554
+v -0.461940 0.656250 -0.191342
+v -0.500000 0.656250 0.000000
+v -0.461940 0.656250 0.191342
+v -0.353554 0.656250 0.353553
+v -0.191342 0.656250 0.461940
+v -0.000001 0.656250 0.500000
+v 0.191341 0.656250 0.461940
+v 0.353553 0.656250 0.353554
+v 0.461940 0.656250 0.191342
+v 0.500000 0.656250 0.000000
+v 0.461940 0.656250 -0.191342
+v 0.353553 1.496094 -0.353553
+v 0.191341 1.496094 -0.461940
+v -0.000001 1.496094 -0.500000
+v -0.191342 1.496094 -0.461940
+v -0.353554 1.496094 -0.353554
+v -0.461940 1.496094 -0.191342
+v -0.500000 1.496094 0.000000
+v -0.461940 1.496094 0.191342
+v -0.353554 1.496094 0.353553
+v -0.191342 1.496094 0.461940
+v -0.000001 1.496094 0.500000
+v 0.191341 1.496094 0.461940
+v 0.353553 1.496094 0.353554
+v 0.461939 1.496094 0.191342
+v 0.500000 1.496094 0.000000
+v 0.461939 1.496094 -0.191342
+v 0.353553 1.464844 -0.353553
+v 0.191341 1.464844 -0.461940
+v -0.000001 1.464844 -0.500000
+v -0.191342 1.464844 -0.461940
+v -0.353554 1.464844 -0.353554
+v -0.461940 1.464844 -0.191342
+v -0.500000 1.464844 0.000000
+v -0.461940 1.464844 0.191342
+v -0.353554 1.464844 0.353553
+v -0.191342 1.464844 0.461940
+v -0.000001 1.464844 0.500000
+v 0.191341 1.464844 0.461940
+v 0.353553 1.464844 0.353554
+v 0.461939 1.464844 0.191342
+v 0.500000 1.464844 0.000000
+v 0.461939 1.464844 -0.191342
+v 0.415735 0.625000 -0.277785
+v 0.277785 0.625000 -0.415735
+v 0.097545 0.625000 -0.490393
+v -0.097545 0.625000 -0.490393
+v -0.277785 0.625000 -0.415735
+v -0.415735 0.625000 -0.277785
+v -0.490393 0.625000 -0.097545
+v -0.490393 0.625000 0.097545
+v -0.415735 0.625000 0.277785
+v -0.277785 0.625000 0.415735
+v -0.097545 0.625000 0.490393
+v 0.097545 0.625000 0.490393
+v 0.277785 0.625000 0.415735
+v 0.415735 0.625000 0.277785
+v 0.490393 0.625000 0.097545
+v 0.490393 0.625000 -0.097545
+v 0.415735 0.656250 -0.277785
+v 0.277785 0.656250 -0.415735
+v 0.097545 0.656250 -0.490393
+v -0.097545 0.656250 -0.490393
+v -0.277785 0.656250 -0.415735
+v -0.415735 0.656250 -0.277785
+v -0.490393 0.656250 -0.097545
+v -0.490393 0.656250 0.097545
+v -0.415735 0.656250 0.277785
+v -0.277785 0.656250 0.415735
+v -0.097545 0.656250 0.490393
+v 0.097545 0.656250 0.490393
+v 0.277785 0.656250 0.415735
+v 0.415735 0.656250 0.277785
+v 0.490393 0.656250 0.097545
+v 0.490393 0.656250 -0.097545
+v 0.415735 1.496094 -0.277785
+v 0.277785 1.496094 -0.415735
+v 0.097545 1.496094 -0.490393
+v -0.097545 1.496094 -0.490393
+v -0.277785 1.496094 -0.415735
+v -0.415734 1.496094 -0.277785
+v -0.490392 1.496094 -0.097545
+v -0.490392 1.496094 0.097545
+v -0.415735 1.496094 0.277785
+v -0.277785 1.496094 0.415735
+v -0.097545 1.496094 0.490392
+v 0.097545 1.496094 0.490393
+v 0.277785 1.496094 0.415735
+v 0.415735 1.496094 0.277785
+v 0.490393 1.496094 0.097545
+v 0.490393 1.496094 -0.097545
+v 0.415735 1.464844 -0.277785
+v 0.277785 1.464844 -0.415735
+v 0.097545 1.464844 -0.490393
+v -0.097545 1.464844 -0.490393
+v -0.277785 1.464844 -0.415735
+v -0.415734 1.464844 -0.277785
+v -0.490392 1.464844 -0.097545
+v -0.490392 1.464844 0.097545
+v -0.415735 1.464844 0.277785
+v -0.277785 1.464844 0.415735
+v -0.097545 1.464844 0.490392
+v 0.097545 1.464844 0.490393
+v 0.277785 1.464844 0.415735
+v 0.415735 1.464844 0.277785
+v 0.490393 1.464844 0.097545
+v 0.490393 1.464844 -0.097545
+v 0.461940 0.625000 -0.191342
+v 0.353553 0.625000 -0.353554
+v 0.191342 0.625000 -0.461940
+v 0.000000 0.625000 -0.500000
+v -0.191342 0.625000 -0.461940
+v -0.353553 0.625000 -0.353554
+v -0.461940 0.625000 -0.191342
+v -0.500000 0.625000 -0.000000
+v -0.461940 0.625000 0.191341
+v -0.353554 0.625000 0.353553
+v -0.191342 0.625000 0.461940
+v 0.000000 0.625000 0.500000
+v 0.191342 0.625000 0.461940
+v 0.353553 0.625000 0.353553
+v 0.461940 0.625000 0.191342
+v 0.500000 0.625000 -0.000000
+v 0.461940 0.656250 -0.191342
+v 0.353553 0.656250 -0.353554
+v 0.191342 0.656250 -0.461940
+v 0.000000 0.656250 -0.500000
+v -0.191342 0.656250 -0.461940
+v -0.353553 0.656250 -0.353554
+v -0.461940 0.656250 -0.191342
+v -0.500000 0.656250 -0.000000
+v -0.461940 0.656250 0.191341
+v -0.353554 0.656250 0.353553
+v -0.191342 0.656250 0.461940
+v 0.000000 0.656250 0.500000
+v 0.191342 0.656250 0.461940
+v 0.353553 0.656250 0.353553
+v 0.461940 0.656250 0.191342
+v 0.500000 0.656250 -0.000000
+v 0.461940 1.496094 -0.191342
+v 0.353553 1.496094 -0.353554
+v 0.191342 1.496094 -0.461940
+v 0.000000 1.496094 -0.500000
+v -0.191342 1.496094 -0.461940
+v -0.353553 1.496094 -0.353554
+v -0.461940 1.496094 -0.191342
+v -0.500000 1.496094 -0.000000
+v -0.461940 1.496094 0.191342
+v -0.353554 1.496094 0.353553
+v -0.191342 1.496094 0.461940
+v 0.000000 1.496094 0.500000
+v 0.191342 1.496094 0.461940
+v 0.353553 1.496094 0.353553
+v 0.461940 1.496094 0.191342
+v 0.500000 1.496094 -0.000000
+v 0.461940 1.464844 -0.191342
+v 0.353553 1.464844 -0.353554
+v 0.191342 1.464844 -0.461940
+v 0.000000 1.464844 -0.500000
+v -0.191342 1.464844 -0.461940
+v -0.353553 1.464844 -0.353554
+v -0.461940 1.464844 -0.191342
+v -0.500000 1.464844 -0.000000
+v -0.461940 1.464844 0.191342
+v -0.353554 1.464844 0.353553
+v -0.191342 1.464844 0.461940
+v 0.000000 1.464844 0.500000
+v 0.191342 1.464844 0.461940
+v 0.353553 1.464844 0.353553
+v 0.461940 1.464844 0.191342
+v 0.500000 1.464844 -0.000000
+v 0.490393 0.625000 -0.097545
+v 0.415735 0.625000 -0.277785
+v 0.277786 0.625000 -0.415735
+v 0.097545 0.625000 -0.490392
+v -0.097545 0.625000 -0.490392
+v -0.277785 0.625000 -0.415735
+v -0.415734 0.625000 -0.277785
+v -0.490392 0.625000 -0.097545
+v -0.490392 0.625000 0.097545
+v -0.415734 0.625000 0.277785
+v -0.277785 0.625000 0.415735
+v -0.097545 0.625000 0.490393
+v 0.097546 0.625000 0.490393
+v 0.277786 0.625000 0.415735
+v 0.415735 0.625000 0.277785
+v 0.490393 0.625000 0.097545
+v 0.490393 0.656250 -0.097545
+v 0.415735 0.656250 -0.277785
+v 0.277786 0.656250 -0.415735
+v 0.097545 0.656250 -0.490392
+v -0.097545 0.656250 -0.490392
+v -0.277785 0.656250 -0.415735
+v -0.415734 0.656250 -0.277785
+v -0.490392 0.656250 -0.097545
+v -0.490392 0.656250 0.097545
+v -0.415734 0.656250 0.277785
+v -0.277785 0.656250 0.415735
+v -0.097545 0.656250 0.490393
+v 0.097546 0.656250 0.490393
+v 0.277786 0.656250 0.415735
+v 0.415735 0.656250 0.277785
+v 0.490393 0.656250 0.097545
+v 0.490392 1.496094 -0.097545
+v 0.415735 1.496094 -0.277785
+v 0.277785 1.496094 -0.415735
+v 0.097545 1.496094 -0.490393
+v -0.097546 1.496094 -0.490393
+v -0.277785 1.496094 -0.415735
+v -0.415735 1.496094 -0.277785
+v -0.490393 1.496094 -0.097545
+v -0.490393 1.496094 0.097545
+v -0.415735 1.496094 0.277785
+v -0.277785 1.496094 0.415735
+v -0.097546 1.496094 0.490393
+v 0.097545 1.496094 0.490393
+v 0.277785 1.496094 0.415735
+v 0.415735 1.496094 0.277785
+v 0.490392 1.496094 0.097545
+v 0.490392 1.464844 -0.097545
+v 0.415735 1.464844 -0.277785
+v 0.277785 1.464844 -0.415735
+v 0.097545 1.464844 -0.490393
+v -0.097546 1.464844 -0.490393
+v -0.277785 1.464844 -0.415735
+v -0.415735 1.464844 -0.277785
+v -0.490393 1.464844 -0.097545
+v -0.490393 1.464844 0.097545
+v -0.415735 1.464844 0.277785
+v -0.277785 1.464844 0.415735
+v -0.097546 1.464844 0.490393
+v 0.097545 1.464844 0.490393
+v 0.277785 1.464844 0.415735
+v 0.415735 1.464844 0.277785
+v 0.490392 1.464844 0.097545
+v 0.500000 0.625000 0.000000
+v 0.461940 0.625000 -0.191342
+v 0.353554 0.625000 -0.353553
+v 0.191343 0.625000 -0.461939
+v 0.000001 0.625000 -0.500000
+v -0.191341 0.625000 -0.461939
+v -0.353553 0.625000 -0.353553
+v -0.461939 0.625000 -0.191342
+v -0.500000 0.625000 0.000000
+v -0.461939 0.625000 0.191342
+v -0.353553 0.625000 0.353554
+v -0.191341 0.625000 0.461940
+v 0.000001 0.625000 0.500000
+v 0.191343 0.625000 0.461940
+v 0.353555 0.625000 0.353554
+v 0.461940 0.625000 0.191342
+v 0.500000 0.656250 0.000000
+v 0.461940 0.656250 -0.191342
+v 0.353554 0.656250 -0.353553
+v 0.191343 0.656250 -0.461939
+v 0.000001 0.656250 -0.500000
+v -0.191341 0.656250 -0.461939
+v -0.353553 0.656250 -0.353553
+v -0.461939 0.656250 -0.191342
+v -0.500000 0.656250 0.000000
+v -0.461939 0.656250 0.191342
+v -0.353553 0.656250 0.353554
+v -0.191341 0.656250 0.461940
+v 0.000001 0.656250 0.500000
+v 0.191343 0.656250 0.461940
+v 0.353555 0.656250 0.353554
+v 0.461940 0.656250 0.191342
+v 0.500000 1.496094 0.000000
+v 0.461940 1.496094 -0.191342
+v 0.353554 1.496094 -0.353553
+v 0.191343 1.496094 -0.461939
+v 0.000001 1.496094 -0.500000
+v -0.191341 1.496094 -0.461939
+v -0.353553 1.496094 -0.353553
+v -0.461939 1.496094 -0.191342
+v -0.500000 1.496094 0.000000
+v -0.461939 1.496094 0.191342
+v -0.353553 1.496094 0.353554
+v -0.191341 1.496094 0.461940
+v 0.000001 1.496094 0.500000
+v 0.191343 1.496094 0.461940
+v 0.353555 1.496094 0.353554
+v 0.461940 1.496094 0.191342
+v 0.500000 1.464844 0.000000
+v 0.461940 1.464844 -0.191342
+v 0.353554 1.464844 -0.353553
+v 0.191343 1.464844 -0.461939
+v 0.000001 1.464844 -0.500000
+v -0.191341 1.464844 -0.461939
+v -0.353553 1.464844 -0.353553
+v -0.461939 1.464844 -0.191342
+v -0.500000 1.464844 0.000000
+v -0.461939 1.464844 0.191342
+v -0.353553 1.464844 0.353554
+v -0.191341 1.464844 0.461940
+v 0.000001 1.464844 0.500000
+v 0.191343 1.464844 0.461940
+v 0.353555 1.464844 0.353554
+v 0.461940 1.464844 0.191342
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.000000
+vt 0.050068 0.998878
+vt 0.074932 0.998878
+vt 0.097903 0.922758
+vt 0.115485 0.782105
+vt 0.125000 0.598334
+vt 0.125000 0.399421
+vt 0.115485 0.215651
+vt 0.097903 0.074998
+vt 0.074932 -0.001122
+vt 0.050068 -0.001122
+vt 0.027097 0.074998
+vt 0.009515 0.215650
+vt 0.000000 0.399421
+vt 0.000000 0.598334
+vt 0.009515 0.782105
+vt 0.027097 0.922758
+vt 0.175068 1.000041
+vt 0.199932 1.000041
+vt 0.222903 0.923920
+vt 0.240485 0.783268
+vt 0.250000 0.599497
+vt 0.250000 0.400584
+vt 0.240485 0.216814
+vt 0.222903 0.076161
+vt 0.199932 0.000041
+vt 0.175068 0.000041
+vt 0.152097 0.076161
+vt 0.134515 0.216813
+vt 0.125000 0.400584
+vt 0.125000 0.599497
+vt 0.134515 0.783268
+vt 0.152097 0.923920
+vt 0.300068 1.000041
+vt 0.324932 1.000041
+vt 0.347903 0.923920
+vt 0.365485 0.783268
+vt 0.375000 0.599497
+vt 0.375000 0.400584
+vt 0.365485 0.216814
+vt 0.347903 0.076161
+vt 0.324932 0.000041
+vt 0.300068 0.000041
+vt 0.277097 0.076161
+vt 0.259515 0.216813
+vt 0.259515 0.783268
+vt 0.277097 0.923920
+vt 0.425068 1.000041
+vt 0.449932 1.000041
+vt 0.472903 0.923920
+vt 0.490485 0.783268
+vt 0.500000 0.599497
+vt 0.500000 0.400584
+vt 0.490485 0.216814
+vt 0.472903 0.076161
+vt 0.449932 0.000041
+vt 0.425068 0.000041
+vt 0.402097 0.076161
+vt 0.384515 0.216813
+vt 0.384515 0.783268
+vt 0.402097 0.923920
+vt 0.550068 1.000041
+vt 0.574932 1.000041
+vt 0.597903 0.923920
+vt 0.615485 0.783268
+vt 0.625000 0.599497
+vt 0.625000 0.400584
+vt 0.615485 0.216814
+vt 0.597903 0.076161
+vt 0.574932 0.000041
+vt 0.550068 0.000041
+vt 0.527097 0.076161
+vt 0.509515 0.216813
+vt 0.509515 0.783268
+vt 0.527097 0.923920
+vt 0.675068 1.000041
+vt 0.699932 1.000041
+vt 0.722903 0.923920
+vt 0.740485 0.783268
+vt 0.750000 0.599497
+vt 0.750000 0.400584
+vt 0.740485 0.216814
+vt 0.722903 0.076161
+vt 0.699932 0.000041
+vt 0.675068 0.000041
+vt 0.652097 0.076161
+vt 0.634515 0.216813
+vt 0.634515 0.783268
+vt 0.652097 0.923920
+vt 0.800068 1.000041
+vt 0.824932 1.000041
+vt 0.847903 0.923920
+vt 0.865485 0.783268
+vt 0.875000 0.599497
+vt 0.875000 0.400584
+vt 0.865485 0.216814
+vt 0.847903 0.076161
+vt 0.824932 0.000041
+vt 0.800068 0.000041
+vt 0.777097 0.076161
+vt 0.759515 0.216813
+vt 0.759515 0.783268
+vt 0.777097 0.923920
+vt 0.925068 1.000041
+vt 0.949932 1.000041
+vt 0.972903 0.923920
+vt 0.990485 0.783268
+vt 1.000000 0.599497
+vt 1.000000 0.400584
+vt 0.990485 0.216814
+vt 0.972903 0.076161
+vt 0.949932 0.000041
+vt 0.925068 0.000041
+vt 0.902097 0.076161
+vt 0.884515 0.216813
+vt 0.884515 0.783268
+vt 0.902097 0.923920
+vt 0.062500 0.343750
+vt 0.066406 0.343750
+vt 0.066406 0.375000
+vt 0.062500 0.375000
+vt 0.066406 0.406250
+vt 0.062500 0.406250
+vt 0.062500 0.531250
+vt 0.066406 0.531250
+vt 0.066406 0.500000
+vt 0.062500 0.500000
+vt 0.066406 0.468750
+vt 0.062500 0.468750
+vt 0.066406 0.437500
+vt 0.062500 0.437500
+vt 0.074219 0.468750
+vt 0.078125 0.437500
+vt 0.082031 0.437500
+vt 0.085938 0.468750
+vt 0.085938 0.500000
+vt 0.082031 0.531250
+vt 0.078125 0.531250
+vt 0.074219 0.500000
+vt 0.062500 0.312500
+vt 0.066406 0.312500
+vt 0.062500 0.281250
+vt 0.066406 0.281250
+vt 0.023438 0.750000
+vt 0.023438 0.875000
+vt 0.019531 0.875000
+vt 0.019531 0.750000
+vt 0.023438 0.625000
+vt 0.019531 0.625000
+vt 0.023438 0.500000
+vt 0.019531 0.500000
+vt 0.023438 0.375000
+vt 0.019531 0.375000
+vt 0.023438 0.250000
+vt 0.019531 0.250000
+vt 0.035156 0.500000
+vt 0.035156 0.625000
+vt 0.027344 0.625000
+vt 0.027344 0.500000
+vt 0.023438 0.125000
+vt 0.019531 0.125000
+vt 0.023438 0.000000
+vt 0.019531 0.000000
+vt 0.035156 0.375000
+vt 0.027344 0.375000
+vt 0.035156 0.875000
+vt 0.035156 1.000000
+vt 0.027344 1.000000
+vt 0.027344 0.875000
+vt 0.035156 0.250000
+vt 0.027344 0.250000
+vt 0.035156 0.750000
+vt 0.027344 0.750000
+vt 0.035156 0.125000
+vt 0.027344 0.125000
+vt 0.035156 0.000000
+vt 0.027344 0.000000
+vt 0.023438 1.000000
+vt 0.019531 1.000000
+vt 0.097656 0.593750
+vt 0.097656 0.968750
+vt 0.082031 0.968750
+vt 0.082031 0.593750
+vt 0.078125 0.593750
+vt 0.078125 0.968750
+vt 0.062500 0.968750
+vt 0.062500 0.593750
+vt 0.046875 0.000000
+vt 0.054688 0.000000
+vt 0.054688 0.125000
+vt 0.046875 0.125000
+vt 0.039062 0.875000
+vt 0.042969 0.875000
+vt 0.042969 1.000000
+vt 0.039062 1.000000
+vt 0.039062 0.750000
+vt 0.042969 0.750000
+vt 0.039062 0.625000
+vt 0.042969 0.625000
+vt 0.039062 0.500000
+vt 0.042969 0.500000
+vt 0.046875 0.750000
+vt 0.054688 0.750000
+vt 0.054688 0.875000
+vt 0.046875 0.875000
+vt 0.039062 0.375000
+vt 0.042969 0.375000
+vt 0.039062 0.250000
+vt 0.042969 0.250000
+vt 0.046875 0.625000
+vt 0.054688 0.625000
+vt 0.039062 0.125000
+vt 0.042969 0.125000
+vt 0.046875 0.500000
+vt 0.054688 0.500000
+vt 0.039062 0.000000
+vt 0.042969 0.000000
+vt 0.046875 0.375000
+vt 0.054688 0.375000
+vt 0.054688 1.000000
+vt 0.046875 1.000000
+vt 0.046875 0.250000
+vt 0.054688 0.250000
+vt 0.003906 0.937500
+vt 0.007812 0.937500
+vt 0.007812 0.968750
+vt 0.003906 0.968750
+vt 0.003906 0.718750
+vt 0.007812 0.718750
+vt 0.007812 0.750000
+vt 0.003906 0.750000
+vt 0.007812 0.781250
+vt 0.003906 0.781250
+vt 0.007812 0.812500
+vt 0.003906 0.812500
+vt 0.007812 0.843750
+vt 0.003906 0.843750
+vt 0.007812 0.875000
+vt 0.003906 0.875000
+vt 0.003906 0.906250
+vt 0.007812 0.906250
+vt 0.222656 0.593750
+vt 0.222656 0.968750
+vt 0.207031 0.968750
+vt 0.207031 0.593750
+vt 0.203125 0.593750
+vt 0.203125 0.968750
+vt 0.187500 0.968750
+vt 0.187500 0.593750
+vt 0.347656 0.593750
+vt 0.347656 0.968750
+vt 0.332031 0.968750
+vt 0.332031 0.593750
+vt 0.328125 0.593750
+vt 0.328125 0.968750
+vt 0.312500 0.968750
+vt 0.312500 0.593750
+vt 0.472656 0.593750
+vt 0.472656 0.968750
+vt 0.457031 0.968750
+vt 0.457031 0.593750
+vt 0.453125 0.593750
+vt 0.453125 0.968750
+vt 0.437500 0.968750
+vt 0.437500 0.593750
+vt 0.148438 0.750000
+vt 0.148438 0.875000
+vt 0.144531 0.875000
+vt 0.144531 0.750000
+vt 0.148438 0.625000
+vt 0.144531 0.625000
+vt 0.148438 0.500000
+vt 0.144531 0.500000
+vt 0.148438 0.375000
+vt 0.144531 0.375000
+vt 0.148438 0.250000
+vt 0.144531 0.250000
+vt 0.160156 0.500000
+vt 0.160156 0.625000
+vt 0.152344 0.625000
+vt 0.152344 0.500000
+vt 0.148438 0.125000
+vt 0.144531 0.125000
+vt 0.148438 0.000000
+vt 0.144531 0.000000
+vt 0.160156 0.375000
+vt 0.152344 0.375000
+vt 0.160156 0.875000
+vt 0.160156 1.000000
+vt 0.152344 1.000000
+vt 0.152344 0.875000
+vt 0.160156 0.250000
+vt 0.152344 0.250000
+vt 0.160156 0.750000
+vt 0.152344 0.750000
+vt 0.160156 0.125000
+vt 0.152344 0.125000
+vt 0.160156 0.000000
+vt 0.152344 0.000000
+vt 0.148438 1.000000
+vt 0.144531 1.000000
+vt 0.171875 0.000000
+vt 0.179688 0.000000
+vt 0.179688 0.125000
+vt 0.171875 0.125000
+vt 0.164062 0.875000
+vt 0.167969 0.875000
+vt 0.167969 1.000000
+vt 0.164062 1.000000
+vt 0.164062 0.750000
+vt 0.167969 0.750000
+vt 0.164062 0.625000
+vt 0.167969 0.625000
+vt 0.164062 0.500000
+vt 0.167969 0.500000
+vt 0.171875 0.750000
+vt 0.179688 0.750000
+vt 0.179688 0.875000
+vt 0.171875 0.875000
+vt 0.164062 0.375000
+vt 0.167969 0.375000
+vt 0.164062 0.250000
+vt 0.167969 0.250000
+vt 0.171875 0.625000
+vt 0.179688 0.625000
+vt 0.164062 0.125000
+vt 0.167969 0.125000
+vt 0.171875 0.500000
+vt 0.179688 0.500000
+vt 0.164062 0.000000
+vt 0.167969 0.000000
+vt 0.171875 0.375000
+vt 0.179688 0.375000
+vt 0.179688 1.000000
+vt 0.171875 1.000000
+vt 0.171875 0.250000
+vt 0.179688 0.250000
+vt 0.273438 0.750000
+vt 0.273438 0.875000
+vt 0.269531 0.875000
+vt 0.269531 0.750000
+vt 0.273438 0.625000
+vt 0.269531 0.625000
+vt 0.273438 0.500000
+vt 0.269531 0.500000
+vt 0.273438 0.375000
+vt 0.269531 0.375000
+vt 0.273438 0.250000
+vt 0.269531 0.250000
+vt 0.285156 0.500000
+vt 0.285156 0.625000
+vt 0.277344 0.625000
+vt 0.277344 0.500000
+vt 0.273438 0.125000
+vt 0.269531 0.125000
+vt 0.273438 0.000000
+vt 0.269531 0.000000
+vt 0.285156 0.375000
+vt 0.277344 0.375000
+vt 0.285156 0.875000
+vt 0.285156 1.000000
+vt 0.277344 1.000000
+vt 0.277344 0.875000
+vt 0.285156 0.250000
+vt 0.277344 0.250000
+vt 0.285156 0.750000
+vt 0.277344 0.750000
+vt 0.285156 0.125000
+vt 0.277344 0.125000
+vt 0.285156 0.000000
+vt 0.277344 0.000000
+vt 0.273438 1.000000
+vt 0.269531 1.000000
+vt 0.296875 0.000000
+vt 0.304688 0.000000
+vt 0.304688 0.125000
+vt 0.296875 0.125000
+vt 0.289062 0.875000
+vt 0.292969 0.875000
+vt 0.292969 1.000000
+vt 0.289062 1.000000
+vt 0.289062 0.750000
+vt 0.292969 0.750000
+vt 0.289062 0.625000
+vt 0.292969 0.625000
+vt 0.289062 0.500000
+vt 0.292969 0.500000
+vt 0.296875 0.750000
+vt 0.304688 0.750000
+vt 0.304688 0.875000
+vt 0.296875 0.875000
+vt 0.289062 0.375000
+vt 0.292969 0.375000
+vt 0.289062 0.250000
+vt 0.292969 0.250000
+vt 0.296875 0.625000
+vt 0.304688 0.625000
+vt 0.289062 0.125000
+vt 0.292969 0.125000
+vt 0.296875 0.500000
+vt 0.304688 0.500000
+vt 0.289062 0.000000
+vt 0.292969 0.000000
+vt 0.296875 0.375000
+vt 0.304688 0.375000
+vt 0.304688 1.000000
+vt 0.296875 1.000000
+vt 0.296875 0.250000
+vt 0.304688 0.250000
+vt 0.398438 0.750000
+vt 0.398438 0.875000
+vt 0.394531 0.875000
+vt 0.394531 0.750000
+vt 0.398438 0.625000
+vt 0.394531 0.625000
+vt 0.398438 0.500000
+vt 0.394531 0.500000
+vt 0.398438 0.375000
+vt 0.394531 0.375000
+vt 0.398438 0.250000
+vt 0.394531 0.250000
+vt 0.410156 0.500000
+vt 0.410156 0.625000
+vt 0.402344 0.625000
+vt 0.402344 0.500000
+vt 0.398438 0.125000
+vt 0.394531 0.125000
+vt 0.398438 0.000000
+vt 0.394531 0.000000
+vt 0.410156 0.375000
+vt 0.402344 0.375000
+vt 0.410156 0.875000
+vt 0.410156 1.000000
+vt 0.402344 1.000000
+vt 0.402344 0.875000
+vt 0.410156 0.250000
+vt 0.402344 0.250000
+vt 0.410156 0.750000
+vt 0.402344 0.750000
+vt 0.410156 0.125000
+vt 0.402344 0.125000
+vt 0.410156 0.000000
+vt 0.402344 0.000000
+vt 0.398438 1.000000
+vt 0.394531 1.000000
+vt 0.421875 0.000000
+vt 0.429688 0.000000
+vt 0.429688 0.125000
+vt 0.421875 0.125000
+vt 0.414062 0.875000
+vt 0.417969 0.875000
+vt 0.417969 1.000000
+vt 0.414062 1.000000
+vt 0.414062 0.750000
+vt 0.417969 0.750000
+vt 0.414062 0.625000
+vt 0.417969 0.625000
+vt 0.414062 0.500000
+vt 0.417969 0.500000
+vt 0.421875 0.750000
+vt 0.429688 0.750000
+vt 0.429688 0.875000
+vt 0.421875 0.875000
+vt 0.414062 0.375000
+vt 0.417969 0.375000
+vt 0.414062 0.250000
+vt 0.417969 0.250000
+vt 0.421875 0.625000
+vt 0.429688 0.625000
+vt 0.414062 0.125000
+vt 0.417969 0.125000
+vt 0.421875 0.500000
+vt 0.429688 0.500000
+vt 0.414062 0.000000
+vt 0.417969 0.000000
+vt 0.421875 0.375000
+vt 0.429688 0.375000
+vt 0.429688 1.000000
+vt 0.421875 1.000000
+vt 0.421875 0.250000
+vt 0.429688 0.250000
+vt 0.523438 0.750000
+vt 0.523438 0.875000
+vt 0.519531 0.875000
+vt 0.519531 0.750000
+vt 0.523438 0.625000
+vt 0.519531 0.625000
+vt 0.523438 0.500000
+vt 0.519531 0.500000
+vt 0.523438 0.375000
+vt 0.519531 0.375000
+vt 0.523438 0.250000
+vt 0.519531 0.250000
+vt 0.535156 0.500000
+vt 0.535156 0.625000
+vt 0.527344 0.625000
+vt 0.527344 0.500000
+vt 0.523438 0.125000
+vt 0.519531 0.125000
+vt 0.523438 0.000000
+vt 0.519531 0.000000
+vt 0.535156 0.375000
+vt 0.527344 0.375000
+vt 0.535156 0.875000
+vt 0.535156 1.000000
+vt 0.527344 1.000000
+vt 0.527344 0.875000
+vt 0.535156 0.250000
+vt 0.527344 0.250000
+vt 0.535156 0.750000
+vt 0.527344 0.750000
+vt 0.535156 0.125000
+vt 0.527344 0.125000
+vt 0.535156 0.000000
+vt 0.527344 0.000000
+vt 0.523438 1.000000
+vt 0.519531 1.000000
+vt 0.546875 0.000000
+vt 0.554688 0.000000
+vt 0.554688 0.125000
+vt 0.546875 0.125000
+vt 0.539062 0.875000
+vt 0.542969 0.875000
+vt 0.542969 1.000000
+vt 0.539062 1.000000
+vt 0.539062 0.750000
+vt 0.542969 0.750000
+vt 0.539062 0.625000
+vt 0.542969 0.625000
+vt 0.539062 0.500000
+vt 0.542969 0.500000
+vt 0.546875 0.750000
+vt 0.554688 0.750000
+vt 0.554688 0.875000
+vt 0.546875 0.875000
+vt 0.539062 0.375000
+vt 0.542969 0.375000
+vt 0.539062 0.250000
+vt 0.542969 0.250000
+vt 0.546875 0.625000
+vt 0.554688 0.625000
+vt 0.539062 0.125000
+vt 0.542969 0.125000
+vt 0.546875 0.500000
+vt 0.554688 0.500000
+vt 0.539062 0.000000
+vt 0.542969 0.000000
+vt 0.546875 0.375000
+vt 0.554688 0.375000
+vt 0.554688 1.000000
+vt 0.546875 1.000000
+vt 0.546875 0.250000
+vt 0.554688 0.250000
+vt 0.648438 0.750000
+vt 0.648438 0.875000
+vt 0.644531 0.875000
+vt 0.644531 0.750000
+vt 0.648438 0.625000
+vt 0.644531 0.625000
+vt 0.648438 0.500000
+vt 0.644531 0.500000
+vt 0.648438 0.375000
+vt 0.644531 0.375000
+vt 0.648438 0.250000
+vt 0.644531 0.250000
+vt 0.660156 0.500000
+vt 0.660156 0.625000
+vt 0.652344 0.625000
+vt 0.652344 0.500000
+vt 0.648438 0.125000
+vt 0.644531 0.125000
+vt 0.648438 0.000000
+vt 0.644531 0.000000
+vt 0.660156 0.375000
+vt 0.652344 0.375000
+vt 0.660156 0.875000
+vt 0.660156 1.000000
+vt 0.652344 1.000000
+vt 0.652344 0.875000
+vt 0.660156 0.250000
+vt 0.652344 0.250000
+vt 0.660156 0.750000
+vt 0.652344 0.750000
+vt 0.660156 0.125000
+vt 0.652344 0.125000
+vt 0.660156 0.000000
+vt 0.652344 0.000000
+vt 0.648438 1.000000
+vt 0.644531 1.000000
+vt 0.671875 0.000000
+vt 0.679688 0.000000
+vt 0.679688 0.125000
+vt 0.671875 0.125000
+vt 0.664062 0.875000
+vt 0.667969 0.875000
+vt 0.667969 1.000000
+vt 0.664062 1.000000
+vt 0.664062 0.750000
+vt 0.667969 0.750000
+vt 0.664062 0.625000
+vt 0.667969 0.625000
+vt 0.664062 0.500000
+vt 0.667969 0.500000
+vt 0.671875 0.750000
+vt 0.679688 0.750000
+vt 0.679688 0.875000
+vt 0.671875 0.875000
+vt 0.664062 0.375000
+vt 0.667969 0.375000
+vt 0.664062 0.250000
+vt 0.667969 0.250000
+vt 0.671875 0.625000
+vt 0.679688 0.625000
+vt 0.664062 0.125000
+vt 0.667969 0.125000
+vt 0.671875 0.500000
+vt 0.679688 0.500000
+vt 0.664062 0.000000
+vt 0.667969 0.000000
+vt 0.671875 0.375000
+vt 0.679688 0.375000
+vt 0.679688 1.000000
+vt 0.671875 1.000000
+vt 0.671875 0.250000
+vt 0.679688 0.250000
+vt 0.773438 0.750000
+vt 0.773438 0.875000
+vt 0.769531 0.875000
+vt 0.769531 0.750000
+vt 0.773438 0.625000
+vt 0.769531 0.625000
+vt 0.773438 0.500000
+vt 0.769531 0.500000
+vt 0.773438 0.375000
+vt 0.769531 0.375000
+vt 0.773438 0.250000
+vt 0.769531 0.250000
+vt 0.785156 0.500000
+vt 0.785156 0.625000
+vt 0.777344 0.625000
+vt 0.777344 0.500000
+vt 0.773438 0.125000
+vt 0.769531 0.125000
+vt 0.773438 0.000000
+vt 0.769531 0.000000
+vt 0.785156 0.375000
+vt 0.777344 0.375000
+vt 0.785156 0.875000
+vt 0.785156 1.000000
+vt 0.777344 1.000000
+vt 0.777344 0.875000
+vt 0.785156 0.250000
+vt 0.777344 0.250000
+vt 0.785156 0.750000
+vt 0.777344 0.750000
+vt 0.785156 0.125000
+vt 0.777344 0.125000
+vt 0.785156 0.000000
+vt 0.777344 0.000000
+vt 0.773438 1.000000
+vt 0.769531 1.000000
+vt 0.796875 0.000000
+vt 0.804688 0.000000
+vt 0.804688 0.125000
+vt 0.796875 0.125000
+vt 0.789062 0.875000
+vt 0.792969 0.875000
+vt 0.792969 1.000000
+vt 0.789062 1.000000
+vt 0.789062 0.750000
+vt 0.792969 0.750000
+vt 0.789062 0.625000
+vt 0.792969 0.625000
+vt 0.789062 0.500000
+vt 0.792969 0.500000
+vt 0.796875 0.750000
+vt 0.804688 0.750000
+vt 0.804688 0.875000
+vt 0.796875 0.875000
+vt 0.789062 0.375000
+vt 0.792969 0.375000
+vt 0.789062 0.250000
+vt 0.792969 0.250000
+vt 0.796875 0.625000
+vt 0.804688 0.625000
+vt 0.789062 0.125000
+vt 0.792969 0.125000
+vt 0.796875 0.500000
+vt 0.804688 0.500000
+vt 0.789062 0.000000
+vt 0.792969 0.000000
+vt 0.796875 0.375000
+vt 0.804688 0.375000
+vt 0.804688 1.000000
+vt 0.796875 1.000000
+vt 0.796875 0.250000
+vt 0.804688 0.250000
+vt 0.898438 0.750000
+vt 0.898438 0.875000
+vt 0.894531 0.875000
+vt 0.894531 0.750000
+vt 0.898438 0.625000
+vt 0.894531 0.625000
+vt 0.898438 0.500000
+vt 0.894531 0.500000
+vt 0.898438 0.375000
+vt 0.894531 0.375000
+vt 0.898438 0.250000
+vt 0.894531 0.250000
+vt 0.910156 0.500000
+vt 0.910156 0.625000
+vt 0.902344 0.625000
+vt 0.902344 0.500000
+vt 0.898438 0.125000
+vt 0.894531 0.125000
+vt 0.898438 0.000000
+vt 0.894531 0.000000
+vt 0.910156 0.375000
+vt 0.902344 0.375000
+vt 0.910156 0.875000
+vt 0.910156 1.000000
+vt 0.902344 1.000000
+vt 0.902344 0.875000
+vt 0.910156 0.250000
+vt 0.902344 0.250000
+vt 0.910156 0.750000
+vt 0.902344 0.750000
+vt 0.910156 0.125000
+vt 0.902344 0.125000
+vt 0.910156 0.000000
+vt 0.902344 0.000000
+vt 0.898438 1.000000
+vt 0.894531 1.000000
+vt 0.921875 0.000000
+vt 0.929688 0.000000
+vt 0.929688 0.125000
+vt 0.921875 0.125000
+vt 0.914062 0.875000
+vt 0.917969 0.875000
+vt 0.917969 1.000000
+vt 0.914062 1.000000
+vt 0.914062 0.750000
+vt 0.917969 0.750000
+vt 0.914062 0.625000
+vt 0.917969 0.625000
+vt 0.914062 0.500000
+vt 0.917969 0.500000
+vt 0.921875 0.750000
+vt 0.929688 0.750000
+vt 0.929688 0.875000
+vt 0.921875 0.875000
+vt 0.914062 0.375000
+vt 0.917969 0.375000
+vt 0.914062 0.250000
+vt 0.917969 0.250000
+vt 0.921875 0.625000
+vt 0.929688 0.625000
+vt 0.914062 0.125000
+vt 0.917969 0.125000
+vt 0.921875 0.500000
+vt 0.929688 0.500000
+vt 0.914062 0.000000
+vt 0.917969 0.000000
+vt 0.921875 0.375000
+vt 0.929688 0.375000
+vt 0.929688 1.000000
+vt 0.921875 1.000000
+vt 0.921875 0.250000
+vt 0.929688 0.250000
+vn 1.000000 0.000000 0.000000
+vn 0.000000 0.000000 1.000000
+vn -1.000000 0.000000 0.000000
+vn 0.000000 0.000000 -1.000000
+vn 0.000000 -1.000000 0.000000
+vn 0.000000 1.000000 0.000000
+vn 0.382700 0.000000 -0.923900
+vn 0.923900 0.000000 -0.382700
+vn 0.923900 0.000000 0.382700
+vn 0.382700 0.000000 0.923900
+vn -0.382700 0.000000 0.923900
+vn -0.923900 0.000000 0.382700
+vn -0.382700 0.000000 -0.923900
+vn -0.923900 0.000000 -0.382700
+vn 0.707100 0.000000 0.707100
+vn -0.707100 0.000000 0.707100
+vn 0.707100 0.000000 -0.707100
+vn -0.707100 0.000000 -0.707100
+vn 0.806400 0.000000 -0.591300
+vn 0.988400 0.000000 0.152100
+vn 0.591300 0.000000 0.806400
+vn -0.152100 0.000000 0.988400
+vn -0.806400 0.000000 0.591300
+vn -0.988400 0.000000 -0.152100
+vn 0.152100 0.000000 -0.988400
+vn -0.591300 0.000000 -0.806400
+vn 0.906300 0.000000 -0.422600
+vn 0.939700 0.000000 0.342000
+vn 0.422600 0.000000 0.906300
+vn -0.342000 0.000000 0.939700
+vn -0.906300 0.000000 0.422600
+vn -0.939700 0.000000 -0.342000
+vn 0.342000 0.000000 -0.939700
+vn -0.422600 0.000000 -0.906300
+vn 0.971300 0.000000 -0.237700
+vn 0.854900 0.000000 0.518800
+vn 0.237700 0.000000 0.971300
+vn -0.518800 0.000000 0.854900
+vn -0.971300 0.000000 0.237700
+vn -0.854900 0.000000 -0.518800
+vn 0.518800 0.000000 -0.854900
+vn -0.237700 0.000000 -0.971300
+vn 0.999000 0.000000 -0.043600
+vn 0.737300 0.000000 0.675600
+vn 0.043600 0.000000 0.999000
+vn -0.675600 0.000000 0.737300
+vn -0.999000 0.000000 0.043600
+vn -0.737300 0.000000 -0.675600
+vn 0.675600 0.000000 -0.737300
+vn -0.043600 0.000000 -0.999000
+vn 0.555600 0.000000 0.831500
+vn 0.195100 0.000000 0.980800
+vn -0.195100 0.000000 0.980800
+vn -0.555600 0.000000 0.831500
+vn -0.831500 0.000000 0.555600
+vn 0.195100 0.000000 -0.980800
+vn -0.980800 0.000000 0.195100
+vn -0.980800 0.000000 -0.195100
+vn 0.555600 0.000000 -0.831500
+vn -0.831500 0.000000 -0.555600
+vn 0.831500 0.000000 -0.555600
+vn -0.555600 0.000000 -0.831500
+vn 0.980800 0.000000 -0.195100
+vn -0.195100 0.000000 -0.980800
+vn 0.980800 0.000000 0.195100
+vn 0.831500 0.000000 0.555600
+g Cylinder.002_Cylinder.003_sides
+s off
+f 161/1/1 165/2/1 166/3/1 162/4/1
+f 162/1/2 166/2/2 167/3/2 163/4/2
+f 163/4/3 167/3/3 168/2/3 164/1/3
+f 165/2/4 161/1/4 164/4/4 168/3/4
+g Cylinder.002_Cylinder.003_top-bottom
+f 161/2/5 162/1/5 163/4/5 164/3/5
+f 165/2/6 168/3/6 167/4/6 166/1/6
+g Cylinder.002_Cylinder.003_turbine-top-bottom
+f 130/5/5 129/6/5 144/7/5 143/8/5 142/9/5 141/10/5 140/11/5 139/12/5 138/13/5 137/14/5 136/15/5 135/16/5 134/17/5 133/18/5 132/19/5 131/20/5
+f 18/5/5 17/6/5 32/7/5 31/8/5 30/9/5 29/10/5 28/11/5 27/12/5 26/13/5 25/14/5 24/15/5 23/16/5 22/17/5 21/18/5 20/19/5 19/20/5
+f 33/6/6 34/5/6 35/20/6 36/19/6 37/18/6 38/17/6 39/16/6 40/15/6 41/14/6 42/13/6 43/12/6 44/11/6 45/10/6 46/9/6 47/8/6 48/7/6
+f 113/6/6 114/5/6 115/20/6 116/19/6 117/18/6 118/17/6 119/16/6 120/15/6 121/14/6 122/13/6 123/12/6 124/11/6 125/10/6 126/9/6 127/8/6 128/7/6
+f 410/21/5 409/22/5 424/23/5 423/24/5 422/25/5 421/26/5 420/27/5 419/28/5 418/29/5 417/30/5 416/31/5 415/32/5 414/33/5 413/34/5 412/35/5 411/36/5
+f 362/21/5 361/22/5 376/23/5 375/24/5 374/25/5 373/26/5 372/27/5 371/28/5 370/29/5 369/30/5 368/31/5 367/32/5 366/33/5 365/34/5 364/35/5 363/36/5
+f 377/22/6 378/21/6 379/36/6 380/35/6 381/34/6 382/33/6 383/32/6 384/31/6 385/30/6 386/29/6 387/28/6 388/27/6 389/26/6 390/25/6 391/24/6 392/23/6
+f 393/22/6 394/21/6 395/36/6 396/35/6 397/34/6 398/33/6 399/32/6 400/31/6 401/30/6 402/29/6 403/28/6 404/27/6 405/26/6 406/25/6 407/24/6 408/23/6
+f 474/37/5 473/38/5 488/39/5 487/40/5 486/41/5 485/42/5 484/43/5 483/44/5 482/45/5 481/46/5 480/47/5 479/48/5 478/26/5 477/25/5 476/49/5 475/50/5
+f 426/37/5 425/38/5 440/39/5 439/40/5 438/41/5 437/42/5 436/43/5 435/44/5 434/45/5 433/46/5 432/47/5 431/48/5 430/26/5 429/25/5 428/49/5 427/50/5
+f 441/38/6 442/37/6 443/50/6 444/49/6 445/25/6 446/26/6 447/48/6 448/47/6 449/46/6 450/45/6 451/44/6 452/43/6 453/42/6 454/41/6 455/40/6 456/39/6
+f 457/38/6 458/37/6 459/50/6 460/49/6 461/25/6 462/26/6 463/48/6 464/47/6 465/46/6 466/45/6 467/44/6 468/43/6 469/42/6 470/41/6 471/40/6 472/39/6
+f 538/51/5 537/52/5 552/53/5 551/54/5 550/55/5 549/56/5 548/57/5 547/58/5 546/59/5 545/60/5 544/61/5 543/62/5 542/42/5 541/41/5 540/63/5 539/64/5
+f 490/51/5 489/52/5 504/53/5 503/54/5 502/55/5 501/56/5 500/57/5 499/58/5 498/59/5 497/60/5 496/61/5 495/62/5 494/42/5 493/41/5 492/63/5 491/64/5
+f 505/52/6 506/51/6 507/64/6 508/63/6 509/41/6 510/42/6 511/62/6 512/61/6 513/60/6 514/59/6 515/58/6 516/57/6 517/56/6 518/55/6 519/54/6 520/53/6
+f 521/52/6 522/51/6 523/64/6 524/63/6 525/41/6 526/42/6 527/62/6 528/61/6 529/60/6 530/59/6 531/58/6 532/57/6 533/56/6 534/55/6 535/54/6 536/53/6
+f 602/65/5 601/66/5 616/67/5 615/68/5 614/69/5 613/70/5 612/71/5 611/72/5 610/73/5 609/74/5 608/75/5 607/76/5 606/56/5 605/55/5 604/77/5 603/78/5
+f 554/65/5 553/66/5 568/67/5 567/68/5 566/69/5 565/70/5 564/71/5 563/72/5 562/73/5 561/74/5 560/75/5 559/76/5 558/56/5 557/55/5 556/77/5 555/78/5
+f 569/66/6 570/65/6 571/78/6 572/77/6 573/55/6 574/56/6 575/76/6 576/75/6 577/74/6 578/73/6 579/72/6 580/71/6 581/70/6 582/69/6 583/68/6 584/67/6
+f 585/66/6 586/65/6 587/78/6 588/77/6 589/55/6 590/56/6 591/76/6 592/75/6 593/74/6 594/73/6 595/72/6 596/71/6 597/70/6 598/69/6 599/68/6 600/67/6
+f 666/79/5 665/80/5 680/81/5 679/82/5 678/83/5 677/84/5 676/85/5 675/86/5 674/87/5 673/88/5 672/89/5 671/90/5 670/70/5 669/69/5 668/91/5 667/92/5
+f 618/79/5 617/80/5 632/81/5 631/82/5 630/83/5 629/84/5 628/85/5 627/86/5 626/87/5 625/88/5 624/89/5 623/90/5 622/70/5 621/69/5 620/91/5 619/92/5
+f 633/80/6 634/79/6 635/92/6 636/91/6 637/69/6 638/70/6 639/90/6 640/89/6 641/88/6 642/87/6 643/86/6 644/85/6 645/84/6 646/83/6 647/82/6 648/81/6
+f 649/80/6 650/79/6 651/92/6 652/91/6 653/69/6 654/70/6 655/90/6 656/89/6 657/88/6 658/87/6 659/86/6 660/85/6 661/84/6 662/83/6 663/82/6 664/81/6
+f 730/93/5 729/94/5 744/95/5 743/96/5 742/97/5 741/98/5 740/99/5 739/100/5 738/101/5 737/102/5 736/103/5 735/104/5 734/84/5 733/83/5 732/105/5 731/106/5
+f 682/93/5 681/94/5 696/95/5 695/96/5 694/97/5 693/98/5 692/99/5 691/100/5 690/101/5 689/102/5 688/103/5 687/104/5 686/84/5 685/83/5 684/105/5 683/106/5
+f 697/94/6 698/93/6 699/106/6 700/105/6 701/83/6 702/84/6 703/104/6 704/103/6 705/102/6 706/101/6 707/100/6 708/99/6 709/98/6 710/97/6 711/96/6 712/95/6
+f 713/94/6 714/93/6 715/106/6 716/105/6 717/83/6 718/84/6 719/104/6 720/103/6 721/102/6 722/101/6 723/100/6 724/99/6 725/98/6 726/97/6 727/96/6 728/95/6
+f 794/107/5 793/108/5 808/109/5 807/110/5 806/111/5 805/112/5 804/113/5 803/114/5 802/115/5 801/116/5 800/117/5 799/118/5 798/98/5 797/97/5 796/119/5 795/120/5
+f 746/107/5 745/108/5 760/109/5 759/110/5 758/111/5 757/112/5 756/113/5 755/114/5 754/115/5 753/116/5 752/117/5 751/118/5 750/98/5 749/97/5 748/119/5 747/120/5
+f 761/108/6 762/107/6 763/120/6 764/119/6 765/97/6 766/98/6 767/118/6 768/117/6 769/116/6 770/115/6 771/114/6 772/113/6 773/112/6 774/111/6 775/110/6 776/109/6
+f 777/108/6 778/107/6 779/120/6 780/119/6 781/97/6 782/98/6 783/118/6 784/117/6 785/116/6 786/115/6 787/114/6 788/113/6 789/112/6 790/111/6 791/110/6 792/109/6
+g Cylinder.002_Cylinder.003_turbine-blades-etc
+f 1/121/7 2/122/7 4/123/7 3/124/7
+f 3/124/8 4/123/8 6/125/8 5/126/8
+f 5/127/9 6/128/9 8/129/9 7/130/9
+f 7/130/10 8/129/10 10/131/10 9/132/10
+f 9/132/11 10/131/11 12/133/11 11/134/11
+f 11/134/12 12/133/12 14/125/12 13/126/12
+f 4/135/6 2/136/6 16/137/6 14/138/6 12/139/6 10/140/6 8/141/6 6/142/6
+f 15/143/13 16/144/13 2/122/13 1/121/13
+f 13/145/14 14/146/14 16/144/14 15/143/14
+f 27/147/15 28/148/15 44/149/15 43/150/15
+f 26/151/10 27/147/10 43/150/10 42/152/10
+f 25/153/2 26/151/2 42/152/2 41/154/2
+f 24/155/11 25/153/11 41/154/11 40/156/11
+f 23/157/16 24/155/16 40/156/16 39/158/16
+f 17/159/4 18/160/4 34/161/4 33/162/4
+f 22/163/12 23/157/12 39/158/12 38/164/12
+f 21/165/3 22/163/3 38/164/3 37/166/3
+f 32/167/7 17/159/7 33/162/7 48/168/7
+f 20/169/14 21/170/14 37/171/14 36/172/14
+f 31/173/17 32/167/17 48/168/17 47/174/17
+f 19/175/18 20/169/18 36/172/18 35/176/18
+f 30/177/8 31/173/8 47/174/8 46/178/8
+f 18/160/13 19/175/13 35/176/13 34/161/13
+f 29/179/1 30/177/1 46/178/1 45/180/1
+f 28/148/9 29/181/9 45/182/9 44/149/9
+f 49/183/19 50/184/19 52/185/19 51/186/19
+f 68/186/20 67/183/20 54/184/20 53/185/20
+f 70/183/21 69/184/21 56/185/21 55/186/21
+f 72/184/22 71/185/22 58/186/22 57/183/22
+f 74/183/23 73/184/23 60/185/23 59/186/23
+f 76/183/24 75/184/24 62/185/24 61/186/24
+f 80/184/25 79/185/25 66/186/25 65/183/25
+f 78/183/26 77/184/26 64/185/26 63/186/26
+f 81/187/23 82/188/23 83/189/23 84/190/23
+f 85/188/24 86/189/24 87/190/24 88/187/24
+f 89/189/26 90/190/26 91/187/26 92/188/26
+f 93/190/25 94/187/25 95/188/25 96/189/25
+f 97/190/19 98/187/19 99/188/19 100/189/19
+f 101/187/20 102/188/20 103/189/20 104/190/20
+f 105/190/22 106/187/22 107/188/22 108/189/22
+f 109/189/21 110/190/21 111/187/21 112/188/21
+f 75/188/22 76/187/22 101/186/22 104/185/22
+f 71/188/20 72/187/20 93/186/20 96/185/20
+f 67/186/25 68/185/25 85/188/25 88/187/25
+f 79/186/24 80/185/24 105/188/24 108/187/24
+f 77/188/23 78/187/23 109/186/23 112/185/23
+f 73/188/21 74/187/21 97/186/21 100/185/21
+f 69/186/19 70/185/19 89/188/19 92/187/19
+f 50/186/26 49/185/26 81/188/26 84/187/26
+f 123/191/15 139/192/15 140/193/15 124/194/15
+f 122/195/10 138/196/10 139/197/10 123/198/10
+f 121/199/2 137/200/2 138/196/2 122/195/2
+f 120/201/11 136/202/11 137/200/11 121/199/11
+f 119/203/16 135/204/16 136/202/16 120/201/16
+f 113/205/4 129/206/4 130/207/4 114/208/4
+f 118/209/12 134/210/12 135/204/12 119/203/12
+f 117/211/3 133/212/3 134/210/3 118/209/3
+f 128/213/7 144/214/7 129/206/7 113/205/7
+f 116/215/14 132/216/14 133/212/14 117/211/14
+f 127/217/17 143/218/17 144/214/17 128/213/17
+f 115/219/18 131/220/18 132/216/18 116/215/18
+f 126/221/8 142/222/8 143/218/8 127/217/8
+f 114/208/13 130/207/13 131/223/13 115/224/13
+f 125/225/1 141/226/1 142/222/1 126/221/1
+f 124/194/9 140/193/9 141/226/9 125/225/9
+f 145/227/17 146/228/17 148/229/17 147/230/17
+f 147/231/1 148/232/1 150/233/1 149/234/1
+f 149/234/15 150/233/15 152/235/15 151/236/15
+f 151/236/2 152/235/2 154/237/2 153/238/2
+f 153/238/16 154/237/16 156/239/16 155/240/16
+f 155/240/3 156/239/3 158/241/3 157/242/3
+f 159/243/4 160/244/4 146/228/4 145/227/4
+f 157/242/18 158/241/18 160/244/18 159/243/18
+f 169/245/27 170/246/27 172/247/27 171/248/27
+f 188/248/28 187/245/28 174/246/28 173/247/28
+f 190/245/29 189/246/29 176/247/29 175/248/29
+f 192/246/30 191/247/30 178/248/30 177/245/30
+f 194/245/31 193/246/31 180/247/31 179/248/31
+f 196/245/32 195/246/32 182/247/32 181/248/32
+f 200/246/33 199/247/33 186/248/33 185/245/33
+f 198/245/34 197/246/34 184/247/34 183/248/34
+f 201/249/31 202/250/31 203/251/31 204/252/31
+f 205/250/32 206/251/32 207/252/32 208/249/32
+f 209/251/34 210/252/34 211/249/34 212/250/34
+f 213/252/33 214/249/33 215/250/33 216/251/33
+f 217/252/27 218/249/27 219/250/27 220/251/27
+f 221/249/28 222/250/28 223/251/28 224/252/28
+f 225/252/30 226/249/30 227/250/30 228/251/30
+f 229/251/29 230/252/29 231/249/29 232/250/29
+f 195/250/30 196/249/30 221/248/30 224/247/30
+f 191/250/28 192/249/28 213/248/28 216/247/28
+f 187/248/33 188/247/33 205/250/33 208/249/33
+f 199/248/32 200/247/32 225/250/32 228/249/32
+f 197/250/31 198/249/31 229/248/31 232/247/31
+f 193/250/29 194/249/29 217/248/29 220/247/29
+f 189/248/27 190/247/27 209/250/27 212/249/27
+f 170/248/34 169/247/34 201/250/34 204/249/34
+f 233/253/35 234/254/35 236/255/35 235/256/35
+f 252/256/36 251/253/36 238/254/36 237/255/36
+f 254/253/37 253/254/37 240/255/37 239/256/37
+f 256/254/38 255/255/38 242/256/38 241/253/38
+f 258/253/39 257/254/39 244/255/39 243/256/39
+f 260/253/40 259/254/40 246/255/40 245/256/40
+f 264/254/41 263/255/41 250/256/41 249/253/41
+f 262/253/42 261/254/42 248/255/42 247/256/42
+f 265/257/39 266/258/39 267/259/39 268/260/39
+f 269/258/40 270/259/40 271/260/40 272/257/40
+f 273/259/42 274/260/42 275/257/42 276/258/42
+f 277/260/41 278/257/41 279/258/41 280/259/41
+f 281/260/35 282/257/35 283/258/35 284/259/35
+f 285/257/36 286/258/36 287/259/36 288/260/36
+f 289/260/38 290/257/38 291/258/38 292/259/38
+f 293/259/37 294/260/37 295/257/37 296/258/37
+f 259/258/38 260/257/38 285/256/38 288/255/38
+f 255/258/36 256/257/36 277/256/36 280/255/36
+f 251/256/41 252/255/41 269/258/41 272/257/41
+f 263/256/40 264/255/40 289/258/40 292/257/40
+f 261/258/39 262/257/39 293/256/39 296/255/39
+f 257/258/37 258/257/37 281/256/37 284/255/37
+f 253/256/35 254/255/35 273/258/35 276/257/35
+f 234/256/42 233/255/42 265/258/42 268/257/42
+f 297/261/43 298/262/43 300/263/43 299/264/43
+f 316/264/44 315/261/44 302/262/44 301/263/44
+f 318/261/45 317/262/45 304/263/45 303/264/45
+f 320/262/46 319/263/46 306/264/46 305/261/46
+f 322/261/47 321/262/47 308/263/47 307/264/47
+f 324/261/48 323/262/48 310/263/48 309/264/48
+f 328/262/49 327/263/49 314/264/49 313/261/49
+f 326/261/50 325/262/50 312/263/50 311/264/50
+f 329/265/47 330/266/47 331/267/47 332/268/47
+f 333/266/48 334/267/48 335/268/48 336/265/48
+f 337/267/50 338/268/50 339/265/50 340/266/50
+f 341/268/49 342/265/49 343/266/49 344/267/49
+f 345/268/43 346/265/43 347/266/43 348/267/43
+f 349/265/44 350/266/44 351/267/44 352/268/44
+f 353/268/46 354/265/46 355/266/46 356/267/46
+f 357/267/45 358/268/45 359/265/45 360/266/45
+f 323/266/46 324/265/46 349/264/46 352/263/46
+f 319/266/44 320/265/44 341/264/44 344/263/44
+f 315/264/49 316/263/49 333/266/49 336/265/49
+f 327/264/48 328/263/48 353/266/48 356/265/48
+f 325/266/47 326/265/47 357/264/47 360/263/47
+f 321/266/45 322/265/45 345/264/45 348/263/45
+f 317/264/43 318/263/43 337/266/43 340/265/43
+f 298/264/50 297/263/50 329/266/50 332/265/50
+f 371/269/51 372/270/51 388/271/51 387/272/51
+f 370/273/52 371/269/52 387/272/52 386/274/52
+f 369/275/53 370/273/53 386/274/53 385/276/53
+f 368/277/54 369/275/54 385/276/54 384/278/54
+f 367/279/55 368/277/55 384/278/55 383/280/55
+f 361/281/56 362/282/56 378/283/56 377/284/56
+f 366/285/57 367/279/57 383/280/57 382/286/57
+f 365/287/58 366/285/58 382/286/58 381/288/58
+f 376/289/59 361/281/59 377/284/59 392/290/59
+f 364/291/60 365/292/60 381/293/60 380/294/60
+f 375/295/61 376/289/61 392/290/61 391/296/61
+f 363/297/62 364/291/62 380/294/62 379/298/62
+f 374/299/63 375/295/63 391/296/63 390/300/63
+f 362/282/64 363/297/64 379/298/64 378/283/64
+f 373/301/65 374/299/65 390/300/65 389/302/65
+f 372/270/66 373/303/66 389/304/66 388/271/66
+f 403/305/51 419/306/51 420/307/51 404/308/51
+f 402/309/52 418/310/52 419/311/52 403/312/52
+f 401/313/53 417/314/53 418/310/53 402/309/53
+f 400/315/54 416/316/54 417/314/54 401/313/54
+f 399/317/55 415/318/55 416/316/55 400/315/55
+f 393/319/56 409/320/56 410/321/56 394/322/56
+f 398/323/57 414/324/57 415/318/57 399/317/57
+f 397/325/58 413/326/58 414/324/58 398/323/58
+f 408/327/59 424/328/59 409/320/59 393/319/59
+f 396/329/60 412/330/60 413/326/60 397/325/60
+f 407/331/61 423/332/61 424/328/61 408/327/61
+f 395/333/62 411/334/62 412/330/62 396/329/62
+f 406/335/63 422/336/63 423/332/63 407/331/63
+f 394/322/64 410/321/64 411/337/64 395/338/64
+f 405/339/65 421/340/65 422/336/65 406/335/65
+f 404/308/66 420/307/66 421/340/66 405/339/66
+f 435/341/10 436/342/10 452/343/10 451/344/10
+f 434/345/2 435/341/2 451/344/2 450/346/2
+f 433/347/11 434/345/11 450/346/11 449/348/11
+f 432/349/16 433/347/16 449/348/16 448/350/16
+f 431/351/12 432/349/12 448/350/12 447/352/12
+f 425/353/7 426/354/7 442/355/7 441/356/7
+f 430/357/3 431/351/3 447/352/3 446/358/3
+f 429/359/14 430/357/14 446/358/14 445/360/14
+f 440/361/17 425/353/17 441/356/17 456/362/17
+f 428/363/18 429/364/18 445/365/18 444/366/18
+f 439/367/8 440/361/8 456/362/8 455/368/8
+f 427/369/13 428/363/13 444/366/13 443/370/13
+f 438/371/1 439/367/1 455/368/1 454/372/1
+f 426/354/4 427/369/4 443/370/4 442/355/4
+f 437/373/9 438/371/9 454/372/9 453/374/9
+f 436/342/15 437/375/15 453/376/15 452/343/15
+f 467/377/10 483/378/10 484/379/10 468/380/10
+f 466/381/2 482/382/2 483/383/2 467/384/2
+f 465/385/11 481/386/11 482/382/11 466/381/11
+f 464/387/16 480/388/16 481/386/16 465/385/16
+f 463/389/12 479/390/12 480/388/12 464/387/12
+f 457/391/7 473/392/7 474/393/7 458/394/7
+f 462/395/3 478/396/3 479/390/3 463/389/3
+f 461/397/14 477/398/14 478/396/14 462/395/14
+f 472/399/17 488/400/17 473/392/17 457/391/17
+f 460/401/18 476/402/18 477/398/18 461/397/18
+f 471/403/8 487/404/8 488/400/8 472/399/8
+f 459/405/13 475/406/13 476/402/13 460/401/13
+f 470/407/1 486/408/1 487/404/1 471/403/1
+f 458/394/4 474/393/4 475/409/4 459/410/4
+f 469/411/9 485/412/9 486/408/9 470/407/9
+f 468/380/15 484/379/15 485/412/15 469/411/15
+f 499/413/52 500/414/52 516/415/52 515/416/52
+f 498/417/53 499/413/53 515/416/53 514/418/53
+f 497/419/54 498/417/54 514/418/54 513/420/54
+f 496/421/55 497/419/55 513/420/55 512/422/55
+f 495/423/57 496/421/57 512/422/57 511/424/57
+f 489/425/59 490/426/59 506/427/59 505/428/59
+f 494/429/58 495/423/58 511/424/58 510/430/58
+f 493/431/60 494/429/60 510/430/60 509/432/60
+f 504/433/61 489/425/61 505/428/61 520/434/61
+f 492/435/62 493/436/62 509/437/62 508/438/62
+f 503/439/63 504/433/63 520/434/63 519/440/63
+f 491/441/64 492/435/64 508/438/64 507/442/64
+f 502/443/65 503/439/65 519/440/65 518/444/65
+f 490/426/56 491/441/56 507/442/56 506/427/56
+f 501/445/66 502/443/66 518/444/66 517/446/66
+f 500/414/51 501/447/51 517/448/51 516/415/51
+f 531/449/52 547/450/52 548/451/52 532/452/52
+f 530/453/53 546/454/53 547/455/53 531/456/53
+f 529/457/54 545/458/54 546/454/54 530/453/54
+f 528/459/55 544/460/55 545/458/55 529/457/55
+f 527/461/57 543/462/57 544/460/57 528/459/57
+f 521/463/59 537/464/59 538/465/59 522/466/59
+f 526/467/58 542/468/58 543/462/58 527/461/58
+f 525/469/60 541/470/60 542/468/60 526/467/60
+f 536/471/61 552/472/61 537/464/61 521/463/61
+f 524/473/62 540/474/62 541/470/62 525/469/62
+f 535/475/63 551/476/63 552/472/63 536/471/63
+f 523/477/64 539/478/64 540/474/64 524/473/64
+f 534/479/65 550/480/65 551/476/65 535/475/65
+f 522/466/56 538/465/56 539/481/56 523/482/56
+f 533/483/66 549/484/66 550/480/66 534/479/66
+f 532/452/51 548/451/51 549/484/51 533/483/51
+f 563/485/2 564/486/2 580/487/2 579/488/2
+f 562/489/11 563/485/11 579/488/11 578/490/11
+f 561/491/16 562/489/16 578/490/16 577/492/16
+f 560/493/12 561/491/12 577/492/12 576/494/12
+f 559/495/3 560/493/3 576/494/3 575/496/3
+f 553/497/17 554/498/17 570/499/17 569/500/17
+f 558/501/14 559/495/14 575/496/14 574/502/14
+f 557/503/18 558/501/18 574/502/18 573/504/18
+f 568/505/8 553/497/8 569/500/8 584/506/8
+f 556/507/13 557/508/13 573/509/13 572/510/13
+f 567/511/1 568/505/1 584/506/1 583/512/1
+f 555/513/4 556/507/4 572/510/4 571/514/4
+f 566/515/9 567/511/9 583/512/9 582/516/9
+f 554/498/7 555/513/7 571/514/7 570/499/7
+f 565/517/15 566/515/15 582/516/15 581/518/15
+f 564/486/10 565/519/10 581/520/10 580/487/10
+f 595/521/2 611/522/2 612/523/2 596/524/2
+f 594/525/11 610/526/11 611/527/11 595/528/11
+f 593/529/16 609/530/16 610/526/16 594/525/16
+f 592/531/12 608/532/12 609/530/12 593/529/12
+f 591/533/3 607/534/3 608/532/3 592/531/3
+f 585/535/17 601/536/17 602/537/17 586/538/17
+f 590/539/14 606/540/14 607/534/14 591/533/14
+f 589/541/18 605/542/18 606/540/18 590/539/18
+f 600/543/8 616/544/8 601/536/8 585/535/8
+f 588/545/13 604/546/13 605/542/13 589/541/13
+f 599/547/1 615/548/1 616/544/1 600/543/1
+f 587/549/4 603/550/4 604/546/4 588/545/4
+f 598/551/9 614/552/9 615/548/9 599/547/9
+f 586/538/7 602/537/7 603/553/7 587/554/7
+f 597/555/15 613/556/15 614/552/15 598/551/15
+f 596/524/10 612/523/10 613/556/10 597/555/10
+f 627/557/53 628/558/53 644/559/53 643/560/53
+f 626/561/54 627/557/54 643/560/54 642/562/54
+f 625/563/55 626/561/55 642/562/55 641/564/55
+f 624/565/57 625/563/57 641/564/57 640/566/57
+f 623/567/58 624/565/58 640/566/58 639/568/58
+f 617/569/61 618/570/61 634/571/61 633/572/61
+f 622/573/60 623/567/60 639/568/60 638/574/60
+f 621/575/62 622/573/62 638/574/62 637/576/62
+f 632/577/63 617/569/63 633/572/63 648/578/63
+f 620/579/64 621/580/64 637/581/64 636/582/64
+f 631/583/65 632/577/65 648/578/65 647/584/65
+f 619/585/56 620/579/56 636/582/56 635/586/56
+f 630/587/66 631/583/66 647/584/66 646/588/66
+f 618/570/59 619/585/59 635/586/59 634/571/59
+f 629/589/51 630/587/51 646/588/51 645/590/51
+f 628/558/52 629/591/52 645/592/52 644/559/52
+f 659/593/53 675/594/53 676/595/53 660/596/53
+f 658/597/54 674/598/54 675/599/54 659/600/54
+f 657/601/55 673/602/55 674/598/55 658/597/55
+f 656/603/57 672/604/57 673/602/57 657/601/57
+f 655/605/58 671/606/58 672/604/58 656/603/58
+f 649/607/61 665/608/61 666/609/61 650/610/61
+f 654/611/60 670/612/60 671/606/60 655/605/60
+f 653/613/62 669/614/62 670/612/62 654/611/62
+f 664/615/63 680/616/63 665/608/63 649/607/63
+f 652/617/64 668/618/64 669/614/64 653/613/64
+f 663/619/65 679/620/65 680/616/65 664/615/65
+f 651/621/56 667/622/56 668/618/56 652/617/56
+f 662/623/66 678/624/66 679/620/66 663/619/66
+f 650/610/59 666/609/59 667/625/59 651/626/59
+f 661/627/51 677/628/51 678/624/51 662/623/51
+f 660/596/52 676/595/52 677/628/52 661/627/52
+f 691/629/11 692/630/11 708/631/11 707/632/11
+f 690/633/16 691/629/16 707/632/16 706/634/16
+f 689/635/12 690/633/12 706/634/12 705/636/12
+f 688/637/3 689/635/3 705/636/3 704/638/3
+f 687/639/14 688/637/14 704/638/14 703/640/14
+f 681/641/8 682/642/8 698/643/8 697/644/8
+f 686/645/18 687/639/18 703/640/18 702/646/18
+f 685/647/13 686/645/13 702/646/13 701/648/13
+f 696/649/1 681/641/1 697/644/1 712/650/1
+f 684/651/4 685/652/4 701/653/4 700/654/4
+f 695/655/9 696/649/9 712/650/9 711/656/9
+f 683/657/7 684/651/7 700/654/7 699/658/7
+f 694/659/15 695/655/15 711/656/15 710/660/15
+f 682/642/17 683/657/17 699/658/17 698/643/17
+f 693/661/10 694/659/10 710/660/10 709/662/10
+f 692/630/2 693/663/2 709/664/2 708/631/2
+f 723/665/11 739/666/11 740/667/11 724/668/11
+f 722/669/16 738/670/16 739/671/16 723/672/16
+f 721/673/12 737/674/12 738/670/12 722/669/12
+f 720/675/3 736/676/3 737/674/3 721/673/3
+f 719/677/14 735/678/14 736/676/14 720/675/14
+f 713/679/8 729/680/8 730/681/8 714/682/8
+f 718/683/18 734/684/18 735/678/18 719/677/18
+f 717/685/13 733/686/13 734/684/13 718/683/13
+f 728/687/1 744/688/1 729/680/1 713/679/1
+f 716/689/4 732/690/4 733/686/4 717/685/4
+f 727/691/9 743/692/9 744/688/9 728/687/9
+f 715/693/7 731/694/7 732/690/7 716/689/7
+f 726/695/15 742/696/15 743/692/15 727/691/15
+f 714/682/17 730/681/17 731/697/17 715/698/17
+f 725/699/10 741/700/10 742/696/10 726/695/10
+f 724/668/2 740/667/2 741/700/2 725/699/2
+f 755/701/54 756/702/54 772/703/54 771/704/54
+f 754/705/55 755/701/55 771/704/55 770/706/55
+f 753/707/57 754/705/57 770/706/57 769/708/57
+f 752/709/58 753/707/58 769/708/58 768/710/58
+f 751/711/60 752/709/60 768/710/60 767/712/60
+f 745/713/63 746/714/63 762/715/63 761/716/63
+f 750/717/62 751/711/62 767/712/62 766/718/62
+f 749/719/64 750/717/64 766/718/64 765/720/64
+f 760/721/65 745/713/65 761/716/65 776/722/65
+f 748/723/56 749/724/56 765/725/56 764/726/56
+f 759/727/66 760/721/66 776/722/66 775/728/66
+f 747/729/59 748/723/59 764/726/59 763/730/59
+f 758/731/51 759/727/51 775/728/51 774/732/51
+f 746/714/61 747/729/61 763/730/61 762/715/61
+f 757/733/52 758/731/52 774/732/52 773/734/52
+f 756/702/53 757/735/53 773/736/53 772/703/53
+f 787/737/54 803/738/54 804/739/54 788/740/54
+f 786/741/55 802/742/55 803/743/55 787/744/55
+f 785/745/57 801/746/57 802/742/57 786/741/57
+f 784/747/58 800/748/58 801/746/58 785/745/58
+f 783/749/60 799/750/60 800/748/60 784/747/60
+f 777/751/63 793/752/63 794/753/63 778/754/63
+f 782/755/62 798/756/62 799/750/62 783/749/62
+f 781/757/64 797/758/64 798/756/64 782/755/64
+f 792/759/65 808/760/65 793/752/65 777/751/65
+f 780/761/56 796/762/56 797/758/56 781/757/56
+f 791/763/66 807/764/66 808/760/66 792/759/66
+f 779/765/59 795/766/59 796/762/59 780/761/59
+f 790/767/51 806/768/51 807/764/51 791/763/51
+f 778/754/61 794/753/61 795/769/61 779/770/61
+f 789/771/52 805/772/52 806/768/52 790/767/52
+f 788/740/53 804/739/53 805/772/53 789/771/53
diff --git a/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc_off.png b/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc_off.png
new file mode 100644
index 0000000..45a720b
--- /dev/null
+++ b/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc_off.png
Binary files differ
diff --git a/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc_on.png b/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc_on.png
new file mode 100644
index 0000000..e609dd2
--- /dev/null
+++ b/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc_on.png
Binary files differ
diff --git a/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom_off.png b/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom_off.png
new file mode 100644
index 0000000..fa76591
--- /dev/null
+++ b/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom_off.png
Binary files differ
diff --git a/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom_on.png b/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom_on.png
new file mode 100644
index 0000000..ac4df83
--- /dev/null
+++ b/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom_on.png
Binary files differ
diff --git a/mesecons_insulated/init.lua b/mesecons_insulated/init.lua
index c6fc05e..15b916b 100644
--- a/mesecons_insulated/init.lua
+++ b/mesecons_insulated/init.lua
@@ -1,4 +1,4 @@
-function insulated_wire_get_rules(node)
+local function insulated_wire_get_rules(node)
local rules = {{x = 1, y = 0, z = 0},
{x =-1, y = 0, z = 0}}
if node.param2 == 1 or node.param2 == 3 then
diff --git a/mesecons_lamp/init.lua b/mesecons_lamp/init.lua
index 362453c..811e659 100644
--- a/mesecons_lamp/init.lua
+++ b/mesecons_lamp/init.lua
@@ -2,7 +2,7 @@
-- A lamp is "is an electrical device used to create artificial light" (wikipedia)
-- guess what?
-mesecon_lamp_box = {
+local mesecon_lamp_box = {
type = "wallmounted",
wall_top = {-0.3125,0.375,-0.3125,0.3125,0.5,0.3125},
wall_bottom = {-0.3125,-0.5,-0.3125,0.3125,-0.375,0.3125},
diff --git a/mesecons_luacontroller/init.lua b/mesecons_luacontroller/init.lua
index 7d76b26..d874fdf 100644
--- a/mesecons_luacontroller/init.lua
+++ b/mesecons_luacontroller/init.lua
@@ -273,9 +273,25 @@ end
local function get_digiline_send(pos)
if not digiline then return end
return function(channel, msg)
+ -- Make sure channel is string, number or boolean
+ if (type(channel) ~= "string" and type(channel) ~= "number" and type(channel) ~= "boolean") then
+ return false
+ end
+
+ -- It is technically possible to send functions over the wire since
+ -- the high performance impact of stripping those from the data has
+ -- been decided to not be worth the added realism.
+ -- Make sure serialized version of the data is not insanely long to
+ -- prevent DoS-like attacks
+ local msg_ser = minetest.serialize(msg)
+ if #msg_ser > mesecon.setting("luacontroller_digiline_maxlen", 50000) then
+ return false
+ end
+
minetest.after(0, function()
digiline:receptor_send(pos, digiline.rules.default, channel, msg)
end)
+ return true
end
end
@@ -284,6 +300,7 @@ local safe_globals = {
"assert", "error", "ipairs", "next", "pairs", "select",
"tonumber", "tostring", "type", "unpack", "_VERSION"
}
+
local function create_environment(pos, mem, event)
-- Gather variables for the environment
local vports = minetest.registered_nodes[minetest.get_node(pos).name].virtual_portstates
diff --git a/mesecons_microcontroller/init.lua b/mesecons_microcontroller/init.lua
index 6778a10..b241713 100644
--- a/mesecons_microcontroller/init.lua
+++ b/mesecons_microcontroller/init.lua
@@ -1,6 +1,7 @@
-EEPROM_SIZE = 255
+local EEPROM_SIZE = 255
local microc_rules = {}
+local yc = {}
for a = 0, 1 do
for b = 0, 1 do
@@ -20,6 +21,7 @@ end
if tostring(d) == "1" then
top = top.."^jeija_microcontroller_LED_D.png"
end
+local groups
if tostring(d)..tostring(c)..tostring(b)..tostring(a) ~= "0000" then
groups = {dig_immediate=2, not_in_creative_inventory=1, mesecon = 3, overheat = 1}
else
@@ -42,8 +44,8 @@ local mesecons = {effector =
{
rules = input_rules,
action_change = function (pos, node, rulename, newstate)
- yc_update_real_portstates(pos, node, rulename, newstate)
- update_yc(pos)
+ yc.update_real_portstates(pos, node, rulename, newstate)
+ yc.update(pos)
end
}}
if nodename ~= "mesecons_microcontroller:microcontroller0000" then
@@ -127,8 +129,8 @@ minetest.register_node(nodename, {
"button[7.5,0.2;1.5,3;brsflop;RS-Flop]"..
"button_exit[3.5,1;2,3;program;Program]")
meta:set_string("infotext", "Programmed Microcontroller")
- yc_reset (pos)
- update_yc(pos)
+ yc.reset (pos)
+ yc.update(pos)
end,
sounds = default.node_sound_stone_defaults(),
mesecons = mesecons,
@@ -151,8 +153,8 @@ minetest.register_craft({
}
})
-function yc_reset(pos)
- yc_action(pos, {a=false, b=false, c=false, d=false})
+yc.reset = function(pos)
+ yc.action(pos, {a=false, b=false, c=false, d=false})
local meta = minetest.get_meta(pos)
meta:set_int("afterid", 0)
local r = ""
@@ -160,7 +162,7 @@ function yc_reset(pos)
meta:set_string("eeprom", r)
end
-function update_yc(pos)
+yc.update = function(pos)
local meta = minetest.get_meta(pos)
if (mesecon.do_overheat(pos)) then
@@ -172,10 +174,10 @@ function update_yc(pos)
end
local code = meta:get_string("code")
- code = yc_code_remove_commentary(code)
+ code = yc.code_remove_commentary(code)
code = string.gsub(code, " ", "") --Remove all spaces
code = string.gsub(code, " ", "") --Remove all tabs
- if yc_parsecode(code, pos) == nil then
+ if yc.parsecode(code, pos) == nil then
meta:set_string("infotext", "Code not valid!\n"..code)
else
meta:set_string("infotext", "Working Microcontroller\n"..code)
@@ -184,7 +186,7 @@ end
--Code Parsing
-function yc_code_remove_commentary(code)
+yc.code_remove_commentary = function(code)
local is_string = false
for i = 1, #code do
if code:sub(i, i) == '"' then
@@ -196,50 +198,50 @@ function yc_code_remove_commentary(code)
return code
end
-function yc_parsecode(code, pos)
+yc.parsecode = function(code, pos)
local meta = minetest.get_meta(pos)
local endi = 1
- local Lreal = yc_get_real_portstates(pos)
- local Lvirtual = yc_get_virtual_portstates(pos)
+ local Lreal = yc.get_real_portstates(pos)
+ local Lvirtual = yc.get_virtual_portstates(pos)
if Lvirtual == nil then return nil end
local c
local eeprom = meta:get_string("eeprom")
while true do
local command, params
- command, endi = parse_get_command(code, endi)
+ command, endi = yc.parse_get_command(code, endi)
if command == nil then return nil end
if command == true then break end --end of code
if command == "if" then
local r
- r, endi = yc_command_if(code, endi, yc_merge_portstates(Lreal, Lvirtual), eeprom)
+ r, endi = yc.command_if(code, endi, yc.merge_portstates(Lreal, Lvirtual), eeprom)
if r == nil then return nil end
if r == true then -- nothing
elseif r == false then
- local endi_new = yc_skip_to_else (code, endi)
+ local endi_new = yc.skip_to_else (code, endi)
if endi_new == nil then --else > not found
- endi = yc_skip_to_endif(code, endi)
+ endi = yc.skip_to_endif(code, endi)
else
endi = endi_new
end
if endi == nil then return nil end
end
else
- params, endi = parse_get_params(code, endi)
+ params, endi = yc.parse_get_params(code, endi)
if not params then return nil end
end
if command == "on" then
- L = yc_command_on (params, Lvirtual)
+ L = yc.command_on (params, Lvirtual)
elseif command == "off" then
- L = yc_command_off(params, Lvirtual)
+ L = yc.command_off(params, Lvirtual)
elseif command == "print" then
- local su = yc_command_print(params, eeprom, yc_merge_portstates(Lreal, Lvirtual))
+ local su = yc.command_print(params, eeprom, yc.merge_portstates(Lreal, Lvirtual))
if su ~= true then return nil end
elseif command == "after" then
- local su = yc_command_after(params, pos)
+ local su = yc.command_after(params, pos)
if su == nil then return nil end
elseif command == "sbi" then
local new_eeprom
- new_eeprom, Lvirtual = yc_command_sbi (params, eeprom, yc_merge_portstates(Lreal, Lvirtual), Lvirtual)
+ new_eeprom, Lvirtual = yc.command_sbi (params, eeprom, yc.merge_portstates(Lreal, Lvirtual), Lvirtual)
if new_eeprom == nil then return nil
else eeprom = new_eeprom end
elseif command == "if" then --nothing
@@ -250,11 +252,11 @@ function yc_parsecode(code, pos)
if eeprom == nil then return nil else
minetest.get_meta(pos):set_string("eeprom", eeprom) end
end
- yc_action(pos, Lvirtual)
+ yc.action(pos, Lvirtual)
return true
end
-function parse_get_command(code, starti)
+yc.parse_get_command = function(code, starti)
i = starti
local s
while s ~= "" do
@@ -266,7 +268,7 @@ function parse_get_command(code, starti)
starti = starti + 1
i = starti
elseif s == ">" then
- starti = yc_skip_to_endif(code, starti)
+ starti = yc.skip_to_endif(code, starti)
if starti == nil then return nil end
i = starti
else
@@ -280,7 +282,7 @@ function parse_get_command(code, starti)
return nil, nil
end
-function parse_get_params(code, starti)
+yc.parse_get_params = function(code, starti)
i = starti
local s
local params = {}
@@ -303,7 +305,7 @@ function parse_get_params(code, starti)
return nil, nil
end
-function yc_parse_get_eeprom_param(cond, starti)
+yc.parse_get_eeprom_param = function(cond, starti)
i = starti
local s
local addr
@@ -319,7 +321,7 @@ function yc_parse_get_eeprom_param(cond, starti)
return nil, nil
end
-function yc_skip_to_endif(code, starti)
+yc.skip_to_endif = function(code, starti)
local i = starti
local s = false
local open_ifs = 1
@@ -339,7 +341,7 @@ function yc_skip_to_endif(code, starti)
return nil
end
-function yc_skip_to_else(code, starti)
+yc.skip_to_else = function(code, starti)
local i = starti
local s = false
local open_ifs = 1
@@ -360,29 +362,29 @@ function yc_skip_to_else(code, starti)
end
--Commands
-function yc_command_on(params, L)
+yc.command_on = function(params, L)
local rules = {}
for i, port in ipairs(params) do
- L = yc_set_portstate (port, true, L)
+ L = yc.set_portstate (port, true, L)
end
return L
end
-function yc_command_off(params, L)
+yc.command_off = function(params, L)
local rules = {}
for i, port in ipairs(params) do
- L = yc_set_portstate (port, false, L)
+ L = yc.set_portstate (port, false, L)
end
return L
end
-function yc_command_print(params, eeprom, L)
+yc.command_print = function(params, eeprom, L)
local s = ""
for i, param in ipairs(params) do
if param:sub(1,1) == '"' and param:sub(#param, #param) == '"' then
s = s..param:sub(2, #param-1)
else
- r = yc_command_parsecondition(param, L, eeprom)
+ r = yc.command_parsecondition(param, L, eeprom)
if r == "1" or r == "0" then
s = s..r
else return nil end
@@ -392,17 +394,17 @@ function yc_command_print(params, eeprom, L)
return true
end
-function yc_command_sbi(params, eeprom, L, Lv)
+yc.command_sbi = function(params, eeprom, L, Lv)
if params[1]==nil or params[2]==nil or params[3] ~=nil then return nil end
- local status = yc_command_parsecondition(params[2], L, eeprom)
+ local status = yc.command_parsecondition(params[2], L, eeprom)
if status == nil then return nil, nil end
if string.find("ABCD", params[1])~=nil and #params[1]==1 then --is a port
if status == "1" then
- Lv = yc_set_portstate (params[1], true, Lv)
+ Lv = yc.set_portstate (params[1], true, Lv)
else
- Lv = yc_set_portstate (params[1], false, Lv)
+ Lv = yc.set_portstate (params[1], false, Lv)
end
return eeprom, Lv;
end
@@ -420,7 +422,7 @@ function yc_command_sbi(params, eeprom, L, Lv)
end
-- after (delay)
-function yc_command_after(params, pos)
+yc.command_after = function(params, pos)
if params[1] == nil or params[2] == nil or params[3] ~= nil then return nil end
--get time (maximum time is 200)
@@ -436,14 +438,14 @@ function yc_command_after(params, pos)
local afterid = math.random(10000)
local meta = minetest.get_meta(pos)
meta:set_int("afterid", afterid)
- minetest.after(time, yc_command_after_execute, {pos = pos, code = code, afterid = afterid})
+ minetest.after(time, yc.command_after_execute, {pos = pos, code = code, afterid = afterid})
return true
end
-function yc_command_after_execute(params)
+yc.command_after_execute = function(params)
local meta = minetest.get_meta(params.pos)
if meta:get_int("afterid") == params.afterid then --make sure the node has not been changed
- if yc_parsecode(params.code, params.pos) == nil then
+ if yc.parsecode(params.code, params.pos) == nil then
meta:set_string("infotext", "Code in after() not valid!")
else
if code ~= nil then
@@ -456,21 +458,21 @@ function yc_command_after_execute(params)
end
--If
-function yc_command_if(code, starti, L, eeprom)
- local cond, endi = yc_command_if_getcondition(code, starti)
+yc.command_if = function(code, starti, L, eeprom)
+ local cond, endi = yc.command_if_getcondition(code, starti)
if cond == nil then return nil end
- cond = yc_command_parsecondition(cond, L, eeprom)
+ cond = yc.command_parsecondition(cond, L, eeprom)
local result
if cond == "0" then result = false
elseif cond == "1" then result = true end
if not result then end
- return result, endi --endi from local cond, endi = yc_command_if_getcondition(code, starti)
+ return result, endi --endi from local cond, endi = yc.command_if_getcondition(code, starti)
end
--Condition parsing
-function yc_command_if_getcondition(code, starti)
+yc.command_if_getcondition = function(code, starti)
i = starti
local s
local brackets = 1 --1 Bracket to close
@@ -494,7 +496,7 @@ function yc_command_if_getcondition(code, starti)
return nil, nil
end
-function yc_command_parsecondition(cond, L, eeprom)
+yc.command_parsecondition = function(cond, L, eeprom)
cond = string.gsub(cond, "A", tonumber(L.a and 1 or 0))
cond = string.gsub(cond, "B", tonumber(L.b and 1 or 0))
cond = string.gsub(cond, "C", tonumber(L.c and 1 or 0))
@@ -506,8 +508,8 @@ function yc_command_parsecondition(cond, L, eeprom)
while i<=l do
local s = cond:sub(i,i)
if s == "#" then
- local addr, endi = yc_parse_get_eeprom_param(cond, i+1)
- local buf = yc_eeprom_read(tonumber(addr), eeprom)
+ local addr, endi = yc.parse_get_eeprom_param(cond, i+1)
+ local buf = yc.eeprom_read(tonumber(addr), eeprom)
if buf == nil then return nil end
local call = cond:sub(i, endi-1)
cond = string.gsub(cond, call, buf)
@@ -580,14 +582,14 @@ function yc_command_parsecondition(cond, L, eeprom)
end
--Virtual-Hardware functions
-function yc_eeprom_read(number, eeprom)
+yc.eeprom_read = function(number, eeprom)
if not number then return end
return eeprom:sub(number, number)
end
--Real I/O functions
-function yc_action(pos, L) --L-->Lvirtual
- local Lv = yc_get_virtual_portstates(pos)
+yc.action = function(pos, L) --L-->Lvirtual
+ local Lv = yc.get_virtual_portstates(pos)
local name = "mesecons_microcontroller:microcontroller"
..tonumber(L.d and 1 or 0)
..tonumber(L.c and 1 or 0)
@@ -596,10 +598,10 @@ function yc_action(pos, L) --L-->Lvirtual
local node = minetest.get_node(pos)
minetest.swap_node(pos, {name = name, param2 = node.param2})
- yc_action_setports(pos, L, Lv)
+ yc.action_setports(pos, L, Lv)
end
-function yc_action_setports(pos, L, Lv)
+yc.action_setports = function(pos, L, Lv)
local name = "mesecons_microcontroller:microcontroller"
local rules
if Lv.a ~= L.a then
@@ -624,7 +626,7 @@ function yc_action_setports(pos, L, Lv)
end
end
-function yc_set_portstate(port, state, L)
+yc.set_portstate = function(port, state, L)
if port == "A" then L.a = state
elseif port == "B" then L.b = state
elseif port == "C" then L.c = state
@@ -633,7 +635,7 @@ function yc_set_portstate(port, state, L)
return L
end
-function yc_update_real_portstates(pos, node, rulename, newstate)
+yc.update_real_portstates = function(pos, node, rulename, newstate)
local meta = minetest.get_meta(pos)
if rulename == nil then
meta:set_int("real_portstates", 1)
@@ -657,7 +659,7 @@ function yc_update_real_portstates(pos, node, rulename, newstate)
meta:set_int("real_portstates", 1 + L[1] + 2*L[2] + 4*L[3] + 8*L[4])
end
-function yc_get_real_portstates(pos) -- determine if ports are powered (by itself or from outside)
+yc.get_real_portstates = function(pos) -- determine if ports are powered (by itself or from outside)
local meta = minetest.get_meta(pos)
local L = {}
local n = meta:get_int("real_portstates") - 1
@@ -668,7 +670,7 @@ function yc_get_real_portstates(pos) -- determine if ports are powered (by itsel
return L
end
-function yc_get_virtual_portstates(pos) -- portstates according to the name
+yc.get_virtual_portstates = function(pos) -- portstates according to the name
local name = minetest.get_node(pos).name
local b, a = string.find(name, ":microcontroller")
if a == nil then return nil end
@@ -682,7 +684,7 @@ function yc_get_virtual_portstates(pos) -- portstates according to the name
return Lvirtual
end
-function yc_merge_portstates(Lreal, Lvirtual)
+yc.merge_portstates = function(Lreal, Lvirtual)
local L = {a=false, b=false, c=false, d=false}
if Lvirtual.a or Lreal.a then L.a = true end
if Lvirtual.b or Lreal.b then L.b = true end
diff --git a/mesecons_movestones/init.lua b/mesecons_movestones/init.lua
index 52a5605..9e9dce6 100644
--- a/mesecons_movestones/init.lua
+++ b/mesecons_movestones/init.lua
@@ -26,28 +26,28 @@ function mesecon.get_movestone_direction(pos)
lpos = {x=pos.x+1, y=pos.y, z=pos.z}
for n = 1, 3 do
- if mesecon.is_power_on(lpos, rules[n].x, rules[n].y, rules[n].z) then
+ if mesecon.is_power_on(lpos, rules[n]) then
return {x=0, y=0, z=-1}
end
end
lpos = {x = pos.x-1, y = pos.y, z = pos.z}
for n=4, 6 do
- if mesecon.is_power_on(lpos, rules[n].x, rules[n].y, rules[n].z) then
+ if mesecon.is_power_on(lpos, rules[n]) then
return {x=0, y=0, z=1}
end
end
lpos = {x = pos.x, y = pos.y, z = pos.z+1}
for n=7, 9 do
- if mesecon.is_power_on(lpos, rules[n].x, rules[n].y, rules[n].z) then
+ if mesecon.is_power_on(lpos, rules[n]) then
return {x=-1, y=0, z=0}
end
end
lpos = {x = pos.x, y = pos.y, z = pos.z-1}
for n=10, 12 do
- if mesecon.is_power_on(lpos, rules[n].x, rules[n].y, rules[n].z) then
+ if mesecon.is_power_on(lpos, rules[n]) then
return {x=1, y=0, z=0}
end
end
diff --git a/mesecons_pistons/init.lua b/mesecons_pistons/init.lua
index 474f621..a52c802 100644
--- a/mesecons_pistons/init.lua
+++ b/mesecons_pistons/init.lua
@@ -1,6 +1,6 @@
-- Get mesecon rules of pistons
-piston_rules =
-{{x=0, y=0, z=1}, --everything apart from z- (pusher side)
+local piston_rules = {
+ {x=0, y=0, z=1}, --everything apart from z- (pusher side)
{x=1, y=0, z=0},
{x=-1, y=0, z=0},
{x=1, y=1, z=0},
@@ -8,29 +8,32 @@ piston_rules =
{x=-1, y=1, z=0},
{x=-1, y=-1, z=0},
{x=0, y=1, z=1},
- {x=0, y=-1, z=1}}
+ {x=0, y=-1, z=1}
+}
-local piston_up_rules =
-{{x=0, y=0, z=-1}, --everything apart from y+ (pusher side)
+local piston_up_rules = {
+ {x=0, y=0, z=-1}, --everything apart from y+ (pusher side)
{x=1, y=0, z=0},
{x=-1, y=0, z=0},
{x=0, y=0, z=1},
{x=1, y=-1, z=0},
{x=-1, y=-1, z=0},
{x=0, y=-1, z=1},
- {x=0, y=-1, z=-1}}
+ {x=0, y=-1, z=-1}
+}
-local piston_down_rules =
-{{x=0, y=0, z=-1}, --everything apart from y- (pusher side)
+local piston_down_rules = {
+ {x=0, y=0, z=-1}, --everything apart from y- (pusher side)
{x=1, y=0, z=0},
{x=-1, y=0, z=0},
{x=0, y=0, z=1},
{x=1, y=1, z=0},
{x=-1, y=1, z=0},
{x=0, y=1, z=1},
- {x=0, y=1, z=-1}}
+ {x=0, y=1, z=-1}
+}
-local piston_get_rules = function (node)
+local function piston_get_rules(node)
local rules = piston_rules
for i = 1, node.param2 do
rules = mesecon.rotate_rules_left(rules)
@@ -38,7 +41,7 @@ local piston_get_rules = function (node)
return rules
end
-piston_facedir_direction = function (node)
+local function piston_facedir_direction(node)
local rules = {{x = 0, y = 0, z = -1}}
for i = 1, node.param2 do
rules = mesecon.rotate_rules_left(rules)
@@ -46,7 +49,7 @@ piston_facedir_direction = function (node)
return rules[1]
end
-piston_get_direction = function(dir, node)
+local function piston_get_direction(dir, node)
if type(dir) == "function" then
return dir(node)
else
diff --git a/mesecons_pressureplates/init.lua b/mesecons_pressureplates/init.lua
index 858f6ab..cd4529b 100644
--- a/mesecons_pressureplates/init.lua
+++ b/mesecons_pressureplates/init.lua
@@ -8,7 +8,7 @@ local pp_box_on = {
fixed = { -7/16, -8/16, -7/16, 7/16, -7.5/16, 7/16 },
}
-pp_on_timer = function (pos, elapsed)
+local function pp_on_timer(pos, elapsed)
local node = minetest.get_node(pos)
local basename = minetest.registered_nodes[node.name].pressureplate_basename
diff --git a/mesecons_receiver/init.lua b/mesecons_receiver/init.lua
index 9284e57..a5cf7d5 100644
--- a/mesecons_receiver/init.lua
+++ b/mesecons_receiver/init.lua
@@ -1,10 +1,30 @@
-rcvboxes = {
+local rcvboxes = {
{ -3/16, -3/16, -8/16 , 3/16, 3/16 , -13/32 }, -- the smaller bump
{ -1/32, -1/32, -3/2 , 1/32, 1/32 , -1/2 }, -- the wire through the block
{ -2/32, -1/2 , -.5 , 2/32, 0 , -.5002+3/32 }, -- the vertical wire bit
{ -2/32, -1/2 , -7/16+0.002 , 2/32, -14/32, 16/32+0.001 } -- the horizontal wire
}
+local down_rcvboxes = {
+ {-6/16, -8/16, -6/16, 6/16, -7/16, 6/16}, -- Top plate
+ {-2/16, -6/16, -2/16, 2/16, -7/16, 2/16}, -- Bump
+ {-1/16, -8/16, -1/16, 1/16, -24/16, 1/16}, -- Wire through the block
+ {-1/16, -8/16, 6/16, 1/16, -7/16, 8/16}, -- Plate extension (North)
+ {-1/16, -8/16, -6/16, 1/16, -7/16, -8/16}, -- Plate extension (South)
+ {-8/16, -8/16, 1/16, -6/16, -7/16, -1/16}, -- Plate extension (West)
+ {6/16, -8/16, 1/16, 8/16, -7/16, -1/16}, -- Plate extension (East)
+}
+
+local up_rcvboxes = {
+ {-6/16, -8/16, -6/16, 6/16, -7/16, 6/16}, -- Top plate
+ {-2/16, -6/16, -2/16, 2/16, -7/16, 2/16}, -- Bump
+ {-1/16, -6/16, -1/16, 1/16, 24/16, 1/16}, -- Wire through the block
+ {-1/16, -8/16, 6/16, 1/16, -7/16, 8/16}, -- Plate extension (North)
+ {-1/16, -8/16, -6/16, 1/16, -7/16, -8/16}, -- Plate extension (South)
+ {-8/16, -8/16, 1/16, -6/16, -7/16, -1/16}, -- Plate extension (West)
+ {6/16, -8/16, 1/16, 8/16, -7/16, -1/16}, -- Plate extension (East)
+}
+
local receiver_get_rules = function (node)
local rules = { {x = 1, y = 0, z = 0},
{x = -2, y = 0, z = 0}}
@@ -18,8 +38,38 @@ local receiver_get_rules = function (node)
return rules
end
-minetest.register_node("mesecons_receiver:receiver_on", {
+mesecon.register_node("mesecons_receiver:receiver", {
drawtype = "nodebox",
+ paramtype = "light",
+ paramtype2 = "facedir",
+ sunlight_propagates = true,
+ walkable = false,
+ on_rotate = false,
+ selection_box = {
+ type = "fixed",
+ fixed = { -3/16, -8/16, -8/16, 3/16, 3/16, 8/16 }
+ },
+ node_box = {
+ type = "fixed",
+ fixed = rcvboxes
+ },
+ groups = {dig_immediate = 3, not_in_creative_inventory = 1},
+ drop = "mesecons:wire_00000000_off",
+}, {
+ tiles = {
+ "receiver_top_off.png",
+ "receiver_bottom_off.png",
+ "receiver_lr_off.png",
+ "receiver_lr_off.png",
+ "receiver_fb_off.png",
+ "receiver_fb_off.png",
+ },
+ mesecons = {conductor = {
+ state = mesecon.state.off,
+ rules = receiver_get_rules,
+ onstate = "mesecons_receiver:receiver_on"
+ }}
+}, {
tiles = {
"receiver_top_on.png",
"receiver_bottom_on.png",
@@ -28,83 +78,133 @@ minetest.register_node("mesecons_receiver:receiver_on", {
"receiver_fb_on.png",
"receiver_fb_on.png",
},
+ mesecons = {conductor = {
+ state = mesecon.state.on,
+ rules = receiver_get_rules,
+ offstate = "mesecons_receiver:receiver_off"
+ }}
+})
+
+mesecon.register_node("mesecons_receiver:receiver_up", {
+ drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
walkable = false,
+ on_rotate = false,
selection_box = {
type = "fixed",
- fixed = { -3/16, -8/16, -8/16, 3/16, 3/16, 8/16 }
+ fixed = up_rcvboxes
},
node_box = {
type = "fixed",
- fixed = rcvboxes
+ fixed = up_rcvboxes
},
groups = {dig_immediate = 3, not_in_creative_inventory = 1},
drop = "mesecons:wire_00000000_off",
+}, {
+ tiles = {"mesecons_wire_off.png"},
+ mesecons = {conductor = {
+ state = mesecon.state.off,
+ rules = {{x=1, y=0, z=0},
+ {x=-1, y=0, z=0},
+ {x=0, y=0, z=1},
+ {x=0, y=0, z=-1},
+ {x=0, y=1, z=0},
+ {x=0, y=2, z=0}},
+ onstate = "mesecons_receiver:receiver_up_on"
+ }}
+}, {
+ tiles = {"mesecons_wire_on.png"},
mesecons = {conductor = {
state = mesecon.state.on,
- rules = receiver_get_rules,
- offstate = "mesecons_receiver:receiver_off"
+ rules = {{x=1, y=0, z=0},
+ {x=-1, y=0, z=0},
+ {x=0, y=0, z=1},
+ {x=0, y=0, z=-1},
+ {x=0, y=1, z=0},
+ {x=0, y=2, z=0}},
+ offstate = "mesecons_receiver:receiver_up_off"
}}
})
-minetest.register_node("mesecons_receiver:receiver_off", {
+mesecon.register_node("mesecons_receiver:receiver_down", {
drawtype = "nodebox",
- description = "You hacker you",
- tiles = {
- "receiver_top_off.png",
- "receiver_bottom_off.png",
- "receiver_lr_off.png",
- "receiver_lr_off.png",
- "receiver_fb_off.png",
- "receiver_fb_off.png",
- },
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
walkable = false,
+ on_rotate = false,
selection_box = {
type = "fixed",
- fixed = { -3/16, -8/16, -8/16, 3/16, 3/16, 8/16 }
+ fixed = down_rcvboxes
},
node_box = {
type = "fixed",
- fixed = rcvboxes
+ fixed = down_rcvboxes
},
groups = {dig_immediate = 3, not_in_creative_inventory = 1},
drop = "mesecons:wire_00000000_off",
+}, {
+ tiles = {"mesecons_wire_off.png"},
mesecons = {conductor = {
state = mesecon.state.off,
- rules = receiver_get_rules,
- onstate = "mesecons_receiver:receiver_on"
+ rules = {{x=1,y=0, z=0},
+ {x=-1,y=0, z=0},
+ {x=0, y=0, z=1},
+ {x=0, y=0, z=-1},
+ {x=0, y=-2,z=0}},
+ onstate = "mesecons_receiver:receiver_down_on"
+ }}
+}, {
+ tiles = {"mesecons_wire_on.png"},
+ mesecons = {conductor = {
+ state = mesecon.state.on,
+ rules = {{x=1,y=0, z=0},
+ {x=-1,y=0, z=0},
+ {x=0, y=0, z=1},
+ {x=0, y=0, z=-1},
+ {x=0, y=-2,z=0}},
+ offstate = "mesecons_receiver:receiver_down_off"
}}
})
function mesecon.receiver_get_pos_from_rcpt(pos, param2)
local rules = {{x = 2, y = 0, z = 0}}
if param2 == nil then param2 = minetest.get_node(pos).param2 end
- if param2 == 2 then
+ local rcvtype = "mesecons_receiver:receiver_off"
+ local dir = minetest.facedir_to_dir(param2)
+
+ if dir.x == 1 then
+ -- No action needed
+ elseif dir.z == -1 then
rules = mesecon.rotate_rules_left(rules)
- elseif param2 == 3 then
+ elseif dir.x == -1 then
rules = mesecon.rotate_rules_right(mesecon.rotate_rules_right(rules))
- elseif param2 == 0 then
+ elseif dir.z == 1 then
rules = mesecon.rotate_rules_right(rules)
+ elseif dir.y == -1 then
+ rules = mesecon.rotate_rules_up(rules)
+ rcvtype = "mesecons_receiver:receiver_up_off"
+ elseif dir.y == 1 then
+ rules = mesecon.rotate_rules_down(rules)
+ rcvtype = "mesecons_receiver:receiver_down_off"
end
local np = { x = pos.x + rules[1].x,
y = pos.y + rules[1].y,
z = pos.z + rules[1].z}
- return np
+ return np, rcvtype
end
function mesecon.receiver_place(rcpt_pos)
local node = minetest.get_node(rcpt_pos)
- local pos = mesecon.receiver_get_pos_from_rcpt(rcpt_pos, node.param2)
+ local pos, rcvtype = mesecon.receiver_get_pos_from_rcpt(rcpt_pos, node.param2)
local nn = minetest.get_node(pos)
+ local param2 = minetest.dir_to_facedir(minetest.facedir_to_dir(node.param2))
if string.find(nn.name, "mesecons:wire_") ~= nil then
minetest.dig_node(pos)
- minetest.set_node(pos, {name = "mesecons_receiver:receiver_off", param2 = node.param2})
+ minetest.set_node(pos, {name = rcvtype, param2 = param2})
mesecon.on_placenode(pos, nn)
end
end
@@ -133,11 +233,13 @@ minetest.register_on_dignode(function(pos, node)
end)
minetest.register_on_placenode(function (pos, node)
- if string.find(node.name, "mesecons:wire_") ~=nil then
- local rules = { {x = 2, y = 0, z = 0},
- {x =-2, y = 0, z = 0},
- {x = 0, y = 0, z = 2},
- {x = 0, y = 0, z =-2}}
+ if string.find(node.name, "mesecons:wire_") ~= nil then
+ local rules = { {x = 2, y = 0, z = 0},
+ {x =-2, y = 0, z = 0},
+ {x = 0, y = 0, z = 2},
+ {x = 0, y = 0, z =-2},
+ {x = 0, y = 2, z = 0},
+ {x = 0, y = -2, z = 0}}
local i = 1
while rules[i] ~= nil do
local np = { x = pos.x + rules[i].x,
@@ -150,3 +252,8 @@ minetest.register_on_placenode(function (pos, node)
end
end
end)
+
+function mesecon.buttonlike_onrotate(pos, node)
+ minetest.after(0, mesecon.receiver_remove, pos, node)
+ minetest.after(0, mesecon.receiver_place, pos)
+end
diff --git a/mesecons_walllever/init.lua b/mesecons_walllever/init.lua
index 9ae0655..e9454cd 100644
--- a/mesecons_walllever/init.lua
+++ b/mesecons_walllever/init.lua
@@ -31,6 +31,7 @@ mesecon.register_node("mesecons_walllever:wall_lever", {
"jeija_wall_lever_back_edges.png"
},
mesh="jeija_wall_lever_off.obj",
+ on_rotate = mesecon.buttonlike_onrotate,
mesecons = {receptor = {
rules = mesecon.rules.buttonlike_get,
state = mesecon.state.off
@@ -44,6 +45,7 @@ mesecon.register_node("mesecons_walllever:wall_lever", {
"jeija_wall_lever_back_edges.png"
},
mesh="jeija_wall_lever_on.obj",
+ on_rotate = false,
mesecons = {receptor = {
rules = mesecon.rules.buttonlike_get,
state = mesecon.state.on
diff --git a/mesecons_wires/doc/mesecon/preview.png b/mesecons_wires/doc/mesecon/preview.png
index f81e5cb..f81e5cb 100644..100755
--- a/mesecons_wires/doc/mesecon/preview.png
+++ b/mesecons_wires/doc/mesecon/preview.png
Binary files differ
diff --git a/mesecons_wires/init.lua b/mesecons_wires/init.lua
index 879cfa1..ced7c99 100644
--- a/mesecons_wires/init.lua
+++ b/mesecons_wires/init.lua
@@ -140,7 +140,7 @@ nid_inc = function (nid)
return i <= 8
end
-register_wires = function()
+local function register_wires()
local nid = {}
while true do
-- Create group specifiction and nodeid string (see note above for details)
diff --git a/moretrees/node_defs.lua b/moretrees/node_defs.lua
index e5f8127..16b979f 100644
--- a/moretrees/node_defs.lua
+++ b/moretrees/node_defs.lua
@@ -31,7 +31,7 @@ local moretrees_plantlike_leaves_visual_scale = 1
if moretrees.plantlike_leaves then
moretrees_new_leaves_drawtype = "plantlike"
- moretrees_plantlike_leaves_visual_scale = 1.189
+ moretrees_plantlike_leaves_visual_scale = math.sqrt(2)
end
-- redefine default leaves to handle plantlike and/or leaf decay options
@@ -40,7 +40,7 @@ if moretrees.plantlike_leaves then
minetest.override_item("default:leaves", {
inventory_image = minetest.inventorycube("default_leaves.png"),
drawtype = "plantlike",
- visual_scale = 1.189
+ visual_scale = math.sqrt(2)
})
else
minetest.override_item("default:leaves", {
@@ -54,7 +54,7 @@ if moretrees.plantlike_leaves then
minetest.override_item("default:jungleleaves", {
inventory_image = minetest.inventorycube("default_jungleleaves.png"),
drawtype = "plantlike",
- visual_scale = 1.189
+ visual_scale = math.sqrt(2)
})
else
minetest.override_item("default:jungleleaves", {
diff --git a/unified_inventory/api.lua b/unified_inventory/api.lua
index e1b980a..2b63922 100644
--- a/unified_inventory/api.lua
+++ b/unified_inventory/api.lua
@@ -27,7 +27,7 @@ minetest.after(0.01, function()
local groupchk = string.find(chk, "group:")
if (not groupchk and not minetest.registered_items[chk])
or (groupchk and not unified_inventory.get_group_item(string.gsub(chk, "group:", "")).item)
- or minetest.get_item_group(chk, "exclude_from_craft_guide") ~= 0 then
+ or minetest.get_item_group(chk, "not_in_craft_guide") ~= 0 then
unknowns = true
end
end
diff --git a/worldedit_commands/wand.lua b/worldedit_commands/wand.lua
index 79d9eb2..16f9265 100644
--- a/worldedit_commands/wand.lua
+++ b/worldedit_commands/wand.lua
@@ -8,9 +8,9 @@ minetest.register_tool(":worldedit:wand", {
full_punch_interval = 1.0,
max_drop_level = 0,
groupcaps={
- fleshy={times={[2]=0.80, [3]=0.40}, maxwear=0.05, maxlevel=1},
- snappy={times={[2]=0.80, [3]=0.40}, maxwear=0.05, maxlevel=1},
- choppy={times={[3]=0.90}, maxwear=0.05, maxlevel=0}
+ fleshy={times={[2]=0.80, [3]=0.40}, uses=1/0.05, maxlevel=1},
+ snappy={times={[2]=0.80, [3]=0.40}, uses=1/0.05, maxlevel=1},
+ choppy={times={[3]=0.90}, uses=1/0.05, maxlevel=0}
}
},