Compare commits

...

32 Commits

Author SHA1 Message Date
2c5be0735a Russian locale (#386)
* Russian locale

* Russian locale. Plurals fix
2017-08-21 16:57:43 -04:00
36e5e319e3 add description for "Ice Fire" (#385) 2017-08-20 11:52:45 -04:00
57b988c185 clarify desc for "large" shrubbery 2017-08-13 14:33:45 -04:00
d6f660b72a clarify desc for "striped" deck chair 2017-08-13 14:33:45 -04:00
7b4db2fc5a clarify desc for "open" curtains 2017-08-13 14:33:45 -04:00
b45ace825d Update German translation (#378) 2017-08-13 14:27:43 -04:00
9d2704c0c2 rework a bit to work better with minetest_game 0.4.16
eliminates flint and steel (aliased to mt_game fire:flint_and_steel)
eliminates fake_fire:fake_fire (aliased to mt_game fire:permanent_flame)

mt_game already provides a "fake" fire in the form of a "permanent flame", strike a coal block with flint/steel to get it.

modifies default ice block so that it can be "ignited" (ice fire on top) with mt_game flint/steel

Fire mod must be enabled. However, fire damage is NOT required.
2017-08-12 18:21:50 -04:00
d7a4054dda fix take-coin handling for soda machine 2017-08-12 18:00:09 -04:00
f03e71397a get rid of last vestages of "infinite stacks" special handling
just checks for creative mode/priv directly instead, as needed.
2017-08-12 17:52:29 -04:00
6349c53824 update recipes for stained glass 2017-08-12 17:07:51 -04:00
c60607aa0d use a nodebox for building_blocks BWtile 2017-08-12 16:52:31 -04:00
78ec2119f6 give unique (if generic) descriptions to picture frames 2017-08-12 16:43:42 -04:00
c247318dd8 Update french, german, portuguese (and pt_BR) translations (#380)
* add some translatable strings

* updated translations
add option --sort-by-file to updatepo.sh

* Updated de, pt, pt_BR translations
from pull requests #378 (Wuzzy) & #379 (afmachado)

pt.po and pt_BR.po are the same but pt.po is usable by any portuguese speaking people, not only brazilian ones

* improved french translation
2017-08-12 16:30:46 -04:00
9693d9dd46 Disable sleeping in beds (again) 2017-06-25 03:12:23 -04:00
23d1365939 fix wrongly-colored plasma ball base 2017-06-25 03:12:18 -04:00
f391bc59b0 use texture overlays on lava lamps
(water is now blue like it used to be)
2017-06-25 03:12:13 -04:00
790557f6ce Make the white glowlight overlays more subtle
(they're too bright against the darker colors e.g. green)
2017-06-25 03:12:08 -04:00
c9c4214bff use static hardware coloring for books,
use soft overlays for cover trim,
2017-06-25 03:12:03 -04:00
914aee41fe fix book models
(get rid of redundant overlay polys)
2017-06-25 03:11:58 -04:00
ec83040d10 use soft overlays for bathroom tiles instead of the two-layer mesh node 2017-06-25 03:11:52 -04:00
9bb4222aa5 use soft overlays to re-create the subtle white glow that glowlights used to have
before param2 coloring went in.
2017-06-25 03:11:46 -04:00
67ddc87d2c Re-enable sleeping in beds 2017-06-25 03:11:41 -04:00
970636571e missed an alias for open books 2017-06-25 03:11:37 -04:00
4ee5b6b87f revert a599b041d4 (param2 colorization of books)
The intention of this is to fix books in peoples' inventories that are
now inaccessible.  They can be placed, viewed, edited like normal now.

Side effect: all books that were already in-world and that have already
been converted to the param2 colorization before will be grey now, and
most will end up turned some wierd direction, but that can be fixed with
the screwdriver.

If you need to re-color one of the now-grey books, you'll need to craft
one of the desired color, place it, and copy and paste your text from
the grey book.

Newly-placed colored books will behave normally.
2017-06-25 03:11:31 -04:00
1f2676b8f6 use mesh node for cubical plasma lamp 2017-06-25 03:11:25 -04:00
ad4790f74c verify inbox owner when taking items 2017-06-25 03:11:19 -04:00
7925897748 Replace deprecated methods:
- 'setting_get' with 'settings:get'
- 'setting_getbool' with 'settings:get_bool'
2017-06-25 03:11:12 -04:00
459c02548e don't crash if placing bed on top of bed when not in auto-color mode. 2017-06-25 03:11:05 -04:00
1eb1e87f08 use unified dyes auto-colorization feature
also fixed some bugs in bed handling
also got rid of the old, obsolete "placeholder" node, aliased it to air.
2017-06-25 03:10:59 -04:00
27eae09d93 use unified dyes on_construct handler
to set 256-color palette meta key on place
for those nodes that use it
2017-06-25 03:10:53 -04:00
761b18c17e don't reference lrfurn chair colors in homedecor chair LBM
use a local copy instead
2017-06-25 02:29:53 -04:00
763bcb2e95 Make Wrought Iron Fence 2 recipe more generous
And remove double craft definition
2017-03-11 19:39:16 +01:00
54 changed files with 11835 additions and 8141 deletions

View File

@ -234,16 +234,22 @@ minetest.register_node("building_blocks:Tarmac_spread", {
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_node("building_blocks:BWtile", {
drawtype = "raillike",
drawtype = "nodebox",
description = S("Chess board tiling"),
tiles = {"building_blocks_BWtile.png"},
tiles = {
"building_blocks_BWtile.png",
"building_blocks_BWtile.png^[transformR90",
"building_blocks_BWtile.png^[transformR90",
"building_blocks_BWtile.png^[transformR90",
"building_blocks_BWtile.png",
"building_blocks_BWtile.png"
},
inventory_image = "building_blocks_bwtile_inv.png",
paramtype = "light",
walkable = false,
selection_box = {
node_box = {
type = "fixed",
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
@ -302,7 +308,7 @@ if minetest.get_modpath("moreblocks") then
"marble",
"building_blocks:Marble",
{
description = "Marble",
description = S("Marble"),
tiles = {"building_blocks_marble.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
@ -313,7 +319,7 @@ if minetest.get_modpath("moreblocks") then
"hardwood",
"building_blocks:hardwood",
{
description = "Hardwood",
description = S("Hardwood"),
tiles = {"building_blocks_hardwood.png"},
groups = {choppy=1,flammable=1},
sounds = default.node_sound_wood_defaults(),
@ -324,7 +330,7 @@ if minetest.get_modpath("moreblocks") then
"fakegrass",
"building_blocks:fakegrass",
{
description = "Grass",
description = S("Grass"),
tiles = {"default_grass.png"},
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults({
@ -348,7 +354,7 @@ if minetest.get_modpath("moreblocks") then
"tar",
"building_blocks:Tar",
{
description = "Tar",
description = S("Tar"),
tiles = {"building_blocks_tar.png"},
groups = {crumbly=1},
sounds = default.node_sound_stone_defaults(),
@ -360,7 +366,7 @@ if minetest.get_modpath("moreblocks") then
"grate",
"building_blocks:grate",
{
description = "Grate",
description = S("Grate"),
tiles = {"building_blocks_grate.png"},
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
@ -371,7 +377,7 @@ if minetest.get_modpath("moreblocks") then
"Adobe",
"building_blocks:Adobe",
{
description = "Adobe",
description = S("Adobe"),
tiles = {"building_blocks_Adobe.png"},
groups = {crumbly=3},
sounds = default.node_sound_stone_defaults(),
@ -382,7 +388,7 @@ if minetest.get_modpath("moreblocks") then
"Roofing",
"building_blocks:Roofing",
{
description = "Roofing",
description = S("Roofing"),
tiles = {"building_blocks_Roofing.png"},
groups = {snappy=3},
sounds = default.node_sound_stone_defaults(),

6
computer/locale/ru.txt Normal file
View File

@ -0,0 +1,6 @@
# Language: Russian
# Author: inpos <inpos@yandex.ru>
Plastic sheet = Лист пластика
Unprocessed Plastic base = Необработанная пластиковая основа

View File

@ -33,10 +33,10 @@ local colors = { "computer_cyan.png", "computer_magenta.png", "computer_red.png"
local background = "image[0,0;3.55,6.66;computer_black.png]"
local buttons = "button[3,4.5;0.6,0.6;left;<]"
.."button[3.6,4.5;0.6,0.6;rotateleft;L]"
.."button[3.6,4.5;0.6,0.6;rotateleft;"..minetest.formspec_escape(S("L")).."]"
.."button[4.2,4.5;0.6,0.6;down;v]"
.."button[4.2,5.3;0.6,0.6;drop;V]"
.."button[4.8,4.5;0.6,0.6;rotateright;R]"
.."button[4.8,4.5;0.6,0.6;rotateright;"..minetest.formspec_escape(S("R")).."]"
.."button[5.4,4.5;0.6,0.6;right;>]"
.."button[3.5,3;2,2;new;"..minetest.formspec_escape(S("New Game")).."]"
@ -231,7 +231,7 @@ local function step(pos, fields)
local scr = { formsize, background,
t.boardstring, t.previewstring,
draw_shape(t.cur, t.x, t.y, t.rot, boardx, boardy),
"label[3.8,0.1;Next...]label[3.8,2.7;Score: ",
"label[3.8,0.1;"..S("Next...").."]label[3.8,2.7;"..S("Score: "),
t.score, close, buttons }

View File

@ -66,43 +66,36 @@ local function stop_smoke(pos)
this_spawner_meta:set_int("sound", nil)
end
-- FLAME TYPES
local flame_types = {
{ "fake", S("Fake fire") },
{ "ice", S("Ice fire") },
}
minetest.register_node("fake_fire:ice_fire", {
inventory_image = "ice_fire_inv.png",
description = S("Ice fire"),
drawtype = "plantlike",
paramtype = "light",
paramtype2 = "facedir",
groups = {dig_immediate=3, not_in_creative_inventory=1},
sunlight_propagates = true,
buildable_to = true,
walkable = false,
light_source = 14,
waving = 1,
tiles = {
{name="ice_fire_animated.png", animation={type="vertical_frames",
aspect_w=16, aspect_h=16, length=1.5}},
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
start_smoke(pos, node, clicker)
return itemstack
end,
on_destruct = function (pos)
stop_smoke(pos)
minetest.sound_play("fire_extinguish", {
pos = pos, max_hear_distance = 5
})
end,
drop = ""
})
for _, f in ipairs(flame_types) do
local name, desc = unpack(f)
minetest.register_node("fake_fire:"..name.."_fire", {
inventory_image = name.."_fire_inv.png",
description = desc,
drawtype = "plantlike",
paramtype = "light",
paramtype2 = "facedir",
groups = {dig_immediate=3, not_in_creative_inventory=1},
sunlight_propagates = true,
buildable_to = true,
walkable = false,
light_source = 14,
waving = 1,
tiles = {
{name=name.."_fire_animated.png", animation={type="vertical_frames",
aspect_w=16, aspect_h=16, length=1.5}},
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
start_smoke(pos, node, clicker)
return itemstack
end,
on_destruct = function (pos)
stop_smoke(pos)
minetest.sound_play("fire_extinguish", {
pos = pos, max_hear_distance = 5
})
end,
drop = ""
})
end
minetest.register_alias("fake_fire:fake_fire", "fire:permanent_flame")
minetest.register_node("fake_fire:fancy_fire", {
inventory_image = "fancy_fire_inv.png",
@ -190,43 +183,18 @@ for _, mat in ipairs(materials) do
})
end
-- FLINT and STEEL
minetest.register_tool("fake_fire:flint_and_steel", {
description = S("Flint and steel"),
inventory_image = "flint_and_steel.png",
liquids_pointable = false,
stack_max = 1,
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=0,
groupcaps={flamable = {uses=65, maxlevel=1}}
},
on_use = function(itemstack, user, pointed_thing)
if pointed_thing.type == "node" and minetest.get_node(pointed_thing.above).name == "air" then
if not minetest.is_protected(pointed_thing.above, user:get_player_name()) then
if string.find(minetest.get_node(pointed_thing.under).name, "ice") then
minetest.set_node(pointed_thing.above, {name="fake_fire:ice_fire"})
else
minetest.set_node(pointed_thing.above, {name="fake_fire:fake_fire"})
end
else
minetest.chat_send_player(user:get_player_name(), S("This area is protected!"))
end
else
return
end
minetest.register_alias("fake_fire:flint_and_steel", "fire:flint_and_steel")
itemstack:add_wear(65535/65)
return itemstack
minetest.override_item("default:ice", {
on_ignite = function(pos, igniter)
local flame_pos = {x = pos.x, y = pos.y + 1, z = pos.z}
if minetest.get_node(flame_pos).name == "air" then
minetest.set_node(flame_pos, {name = "fake_fire:ice_fire"})
end
end
})
-- CRAFTS
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:flint_and_steel',
recipe = {"default:obsidian_shard", "default:steel_ingot"}
})
minetest.register_craft({
type = "shapeless",

View File

@ -4,51 +4,57 @@ local S = homedecor_i18n.gettext
minetest.register_node("homedecor:bathroom_tiles_dark", {
description = S("Bathroom/kitchen tiles (dark)"),
tiles = {
{ name = "homedecor_bathroom_tiles_bg.png", color = 0xff606060 },
"homedecor_bathroom_tiles_fg.png"
"homedecor_bathroom_tiles_bg.png"
},
overlay_tiles = {
{ name = "homedecor_bathroom_tiles_fg.png", color = 0xff606060 },
},
drawtype = "mesh",
mesh = "homedecor_block_with_overlay.obj",
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette_extended.png",
place_param2 = 240,
groups = {cracky=3, ud_param2_colorable = 1},
sounds = default.node_sound_stone_defaults(),
on_construct = unifieddyes.on_construct,
after_place_node = unifieddyes.recolor_on_place,
after_dig_node = unifieddyes.after_dig_node
})
minetest.register_node("homedecor:bathroom_tiles_medium", {
description = S("Bathroom/kitchen tiles (medium)"),
tiles = {
{ name = "homedecor_bathroom_tiles_bg.png", color = 0xffc0c0c0 },
"homedecor_bathroom_tiles_fg.png"
"homedecor_bathroom_tiles_bg.png"
},
overlay_tiles = {
{ name = "homedecor_bathroom_tiles_fg.png", color = 0xffc0c0c0 },
},
drawtype = "mesh",
mesh = "homedecor_block_with_overlay.obj",
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette_extended.png",
place_param2 = 240,
groups = {cracky=3, ud_param2_colorable = 1},
sounds = default.node_sound_stone_defaults(),
on_construct = unifieddyes.on_construct,
after_place_node = unifieddyes.recolor_on_place,
after_dig_node = unifieddyes.after_dig_node
})
minetest.register_node("homedecor:bathroom_tiles_light", {
description = S("Bathroom/kitchen tiles (light)"),
tiles = {
{ name = "homedecor_bathroom_tiles_bg.png", color = 0xffffffff },
"homedecor_bathroom_tiles_fg.png"
"homedecor_bathroom_tiles_bg.png"
},
overlay_tiles = {
{ name = "homedecor_bathroom_tiles_fg.png", color = 0xffffffff },
},
drawtype = "mesh",
mesh = "homedecor_block_with_overlay.obj",
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette_extended.png",
place_param2 = 240,
groups = {cracky=3, ud_param2_colorable = 1},
sounds = default.node_sound_stone_defaults(),
on_construct = unifieddyes.on_construct,
after_place_node = unifieddyes.recolor_on_place,
after_dig_node = unifieddyes.after_dig_node
})

View File

@ -52,11 +52,13 @@ homedecor.register("bed_regular", {
on_rotate = screwdriver.disallow,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
if not placer:get_player_control().sneak then
return homedecor.bed_expansion(pos, placer, itemstack, pointed_thing)
end
end,
after_dig_node = function(pos)
after_dig_node = function(pos, oldnode, oldmetadata, digger)
unifieddyes.after_dig_node(pos, oldnode, oldmetadata, digger)
homedecor.unextend_bed(pos)
end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
@ -91,7 +93,9 @@ homedecor.register("bed_extended", {
sounds = default.node_sound_wood_defaults(),
expand = { forward = "air" },
on_rotate = screwdriver.disallow,
after_dig_node = function(pos)
after_place_node = unifieddyes.recolor_on_place,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
unifieddyes.after_dig_node(pos, oldnode, oldmetadata, digger)
homedecor.unextend_bed(pos)
end,
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
@ -123,10 +127,14 @@ homedecor.register("bed_kingsize", {
node_box = kbed_cbox,
sounds = default.node_sound_wood_defaults(),
on_rotate = screwdriver.disallow,
after_place_node = unifieddyes.fix_rotation_nsew,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
unifieddyes.after_dig_node(pos, oldnode, oldmetadata, digger)
local inv = digger:get_inventory()
if digger:get_player_control().sneak and inv:room_for_item("main", "bed_regular 1") then
if digger:get_player_control().sneak and inv:room_for_item("main", "homedecor:bed_regular 2") then
inv:remove_item("main", "homedecor:bed_kingsize 1")
inv:add_item("main", "homedecor:bed_regular 2")
end

View File

@ -1,155 +1,159 @@
local S = homedecor_i18n.gettext
local function N_(x) return x end
local bookcolors = {
{ N_("red"), 0xffd26466 },
{ N_("green"), 0xff62aa66 },
{ N_("blue"), 0xff8686d7 },
{ N_("violet"), 0xff9c65a7 },
{ N_("grey"), 0xff757579 },
{ N_("brown"), 0xff896958 }
}
local BOOK_FORMNAME = "homedecor:book_form"
local player_current_book = { }
local function book_dig(pos, node, digger)
if minetest.is_protected(pos, digger:get_player_name()) then return end
local meta = minetest.get_meta(pos)
local data = minetest.serialize({
title = meta:get_string("title") or "",
text = meta:get_string("text") or "",
owner = meta:get_string("owner") or "",
_recover = meta:get_string("_recover") or "",
})
local stack = ItemStack({
name = "homedecor:book",
metadata = data,
})
stack = digger:get_inventory():add_item("main", stack)
if not stack:is_empty() then
minetest.item_drop(stack, digger, pos)
end
minetest.remove_node(pos)
end
for _, c in ipairs(bookcolors) do
local color, hue = unpack(c)
local inv_img = "homedecor_book_inv.png^homedecor_book_trim_inv.png"
homedecor.register("book", {
description = S("Writable Book"),
mesh = "homedecor_book.obj",
tiles = {
"homedecor_book_cover.png",
{ name = "homedecor_book_edges.png", color = 0xffffffff },
{ name = "homedecor_book_cover_trim.png", color = 0xffffffff }
},
inventory_image = inv_img,
wield_image = inv_img,
groups = { snappy=3, oddly_breakable_by_hand=3, book=1, ud_param2_colorable = 1 },
walkable = false,
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
after_dig_node = unifieddyes.after_dig_node,
stack_max = 1,
on_punch = function(pos, node, puncher, pointed_thing)
local fdir = node.param2
minetest.swap_node(pos, { name = "homedecor:book_open", param2 = fdir })
end,
on_place = function(itemstack, placer, pointed_thing)
local plname = placer:get_player_name()
local pos = pointed_thing.under
local node = minetest.get_node_or_nil(pos)
local def = node and minetest.registered_nodes[node.name]
if not def or not def.buildable_to then
pos = pointed_thing.above
node = minetest.get_node_or_nil(pos)
def = node and minetest.registered_nodes[node.name]
if not def or not def.buildable_to then return itemstack end
end
if minetest.is_protected(pos, plname) then return itemstack end
local fdir = minetest.dir_to_facedir(placer:get_look_dir())
minetest.set_node(pos, {
name = "homedecor:book",
param2 = fdir,
local function book_dig(pos, node, digger)
if minetest.is_protected(pos, digger:get_player_name()) then return end
local meta = minetest.get_meta(pos)
local data = minetest.serialize({
title = meta:get_string("title") or "",
text = meta:get_string("text") or "",
owner = meta:get_string("owner") or "",
_recover = meta:get_string("_recover") or "",
})
local text = itemstack:get_metadata() or ""
local meta = minetest.get_meta(pos)
local data = minetest.deserialize(text) or {}
if type(data) ~= "table" then
data = {}
-- Store raw metadata in case some data is lost by the
-- transition to the new meta format, so it is not lost
-- and can be recovered if needed.
meta:set_string("_recover", text)
local stack = ItemStack({
name = "homedecor:book_"..color,
metadata = data,
})
stack = digger:get_inventory():add_item("main", stack)
if not stack:is_empty() then
minetest.item_drop(stack, digger, pos)
end
meta:set_string("title", data.title or "")
meta:set_string("text", data.text or "")
meta:set_string("owner", data.owner or "")
if data.title and data.title ~= "" then
meta:set_string("infotext", data.title)
end
if not homedecor.expect_infinite_stacks then
itemstack:take_item()
end
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
return itemstack
end,
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
on_dig = book_dig,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.5, -0.25, 0.2, -0.35, 0.25}
}
})
minetest.remove_node(pos)
end
homedecor.register("book_open", {
mesh = "homedecor_book_open.obj",
tiles = {
"homedecor_book_cover.png",
{ name = "homedecor_book_edges.png", color = 0xffffffff },
{ name = "homedecor_book_pages.png", color = 0xffffffff }
},
groups = { snappy=3, oddly_breakable_by_hand=3, not_in_creative_inventory=1, ud_param2_colorable = 1 },
drop = "homedecor:book",
walkable = false,
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
after_place_node = unifieddyes.fix_rotation_nsew,
after_dig_node = unifieddyes.after_dig_node,
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
on_dig = book_dig,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local meta = minetest.get_meta(pos)
local player_name = clicker:get_player_name()
local title = meta:get_string("title") or ""
local text = meta:get_string("text") or ""
local owner = meta:get_string("owner") or ""
local formspec
if owner == "" or owner == player_name then
formspec = "size[8,8]"..default.gui_bg..default.gui_bg_img..
"field[0.5,1;7.5,0;title;Book title :;"..
minetest.formspec_escape(title).."]"..
"textarea[0.5,1.5;7.5,7;text;Book content :;"..
minetest.formspec_escape(text).."]"..
"button_exit[2.5,7.5;3,1;save;Save]"
else
formspec = "size[8,8]"..default.gui_bg..
"button_exit[7,0.25;1,0.5;close;X]"..
default.gui_bg_img..
"label[0.5,0.5;by "..owner.."]"..
"label[0.5,0;"..minetest.formspec_escape(title).."]"..
"textarea[0.5,1.5;7.5,7;;"..minetest.formspec_escape(text)..";]"
end
player_current_book[player_name] = pos
minetest.show_formspec(player_name, BOOK_FORMNAME, formspec)
return itemstack
end,
on_punch = function(pos, node, puncher, pointed_thing)
local fdir = node.param2
minetest.swap_node(pos, { name = "homedecor:book", param2 = fdir })
minetest.sound_play("homedecor_book_close", {
pos=pos,
max_hear_distance = 3,
gain = 2,
homedecor.register("book_"..color, {
description = S("Writable Book (@1)", S(color)),
mesh = "homedecor_book.obj",
tiles = {
{ name = "homedecor_book_cover.png", color = hue },
{ name = "homedecor_book_edges.png", color = "white" }
},
overlay_tiles = {
{ name = "homedecor_book_cover_trim.png", color = "white" },
""
},
groups = { snappy=3, oddly_breakable_by_hand=3, book=1 },
walkable = false,
stack_max = 1,
on_punch = function(pos, node, puncher, pointed_thing)
local fdir = node.param2
minetest.swap_node(pos, { name = "homedecor:book_open_"..color, param2 = fdir })
end,
on_place = function(itemstack, placer, pointed_thing)
local plname = placer:get_player_name()
local pos = pointed_thing.under
local node = minetest.get_node_or_nil(pos)
local def = node and minetest.registered_nodes[node.name]
if not def or not def.buildable_to then
pos = pointed_thing.above
node = minetest.get_node_or_nil(pos)
def = node and minetest.registered_nodes[node.name]
if not def or not def.buildable_to then return itemstack end
end
if minetest.is_protected(pos, plname) then return itemstack end
local fdir = minetest.dir_to_facedir(placer:get_look_dir())
minetest.set_node(pos, {
name = "homedecor:book_"..color,
param2 = fdir,
})
end,
selection_box = {
type = "fixed",
fixed = {-0.35, -0.5, -0.25, 0.35, -0.4, 0.25}
}
})
local text = itemstack:get_metadata() or ""
local meta = minetest.get_meta(pos)
local data = minetest.deserialize(text) or {}
if type(data) ~= "table" then
data = {}
-- Store raw metadata in case some data is lost by the
-- transition to the new meta format, so it is not lost
-- and can be recovered if needed.
meta:set_string("_recover", text)
end
meta:set_string("title", data.title or "")
meta:set_string("text", data.text or "")
meta:set_string("owner", data.owner or "")
if data.title and data.title ~= "" then
meta:set_string("infotext", data.title)
end
if not creative.is_enabled_for(plname) then
itemstack:take_item()
end
return itemstack
end,
on_dig = book_dig,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.5, -0.25, 0.2, -0.35, 0.25}
}
})
homedecor.register("book_open_"..color, {
mesh = "homedecor_book_open.obj",
tiles = {
{ name = "homedecor_book_cover.png", color = hue },
{ name = "homedecor_book_edges.png", color = "white" },
{ name = "homedecor_book_pages.png", color = "white" }
},
groups = { snappy=3, oddly_breakable_by_hand=3, not_in_creative_inventory=1 },
drop = "homedecor:book_"..color,
walkable = false,
on_dig = book_dig,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local meta = minetest.get_meta(pos)
local player_name = clicker:get_player_name()
local title = meta:get_string("title") or ""
local text = meta:get_string("text") or ""
local owner = meta:get_string("owner") or ""
local formspec
if owner == "" or owner == player_name then
formspec = "size[8,8]"..default.gui_bg..default.gui_bg_img..
"field[0.5,1;7.5,0;title;Book title :;"..
minetest.formspec_escape(title).."]"..
"textarea[0.5,1.5;7.5,7;text;Book content :;"..
minetest.formspec_escape(text).."]"..
"button_exit[2.5,7.5;3,1;save;Save]"
else
formspec = "size[8,8]"..default.gui_bg..
"button_exit[7,0.25;1,0.5;close;X]"..
default.gui_bg_img..
"label[0.5,0.5;by "..owner.."]"..
"label[0.5,0;"..minetest.formspec_escape(title).."]"..
"textarea[0.5,1.5;7.5,7;;"..minetest.formspec_escape(text)..";]"
end
player_current_book[player_name] = pos
minetest.show_formspec(player_name, BOOK_FORMNAME, formspec)
return itemstack
end,
on_punch = function(pos, node, puncher, pointed_thing)
local fdir = node.param2
minetest.swap_node(pos, { name = "homedecor:book_"..color, param2 = fdir })
minetest.sound_play("homedecor_book_close", {
pos=pos,
max_hear_distance = 3,
gain = 2,
})
end,
selection_box = {
type = "fixed",
fixed = {-0.35, -0.5, -0.25, 0.35, -0.4, 0.25}
}
})
end
minetest.register_on_player_receive_fields(function(player, form_name, fields)
if form_name ~= BOOK_FORMNAME or not fields.save then
@ -169,67 +173,5 @@ minetest.register_on_player_receive_fields(function(player, form_name, fields)
player:get_player_name(), fields.title, fields.text, minetest.pos_to_string(player:getpos())))
end)
-- convert old static nodes to param2
local bookcolors = {
"red",
"green",
"blue",
"violet",
"grey",
"brown"
}
homedecor.old_static_books = {}
for _, color in ipairs(bookcolors) do
table.insert(homedecor.old_static_books, "homedecor:book_"..color)
table.insert(homedecor.old_static_books, "homedecor:book_open_"..color)
end
minetest.register_lbm({
name = "homedecor:convert_books",
label = "Convert homedecor books to use param2 color",
run_at_every_load = false,
nodenames = homedecor.old_static_books,
action = function(pos, node)
local name = node.name
local color = string.sub(name, string.find(name, "_", -7)+1)
local newname = "homedecor:book"
if string.find(name, "open") then
newname = "homedecor:book_open"
end
local old_fdir = math.floor(node.param2 % 32)
local new_fdir = 3
if old_fdir == 0 then
new_fdir = 3
elseif old_fdir == 1 then
new_fdir = 4
elseif old_fdir == 2 then
new_fdir = 2
elseif old_fdir == 3 then
new_fdir = 5
end
if color == "grey" then
color = "dark_grey"
elseif color == "violet" then
color = "dark_magenta"
elseif color == "brown" then
color = "dark_orange"
elseif color == "blue" then
color = "light_blue"
else
color = "medium_"..color
end
local paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted")
local param2 = paletteidx + new_fdir
minetest.swap_node(pos, { name = newname, param2 = param2 })
local meta = minetest.get_meta(pos)
meta:set_string("dye", "unifieddyes:"..color)
end
})
minetest.register_alias("homedecor:book", "homedecor:book_grey")
minetest.register_alias("homedecor:book_open", "homedecor:book_open_grey")

View File

@ -1298,15 +1298,7 @@ minetest.register_craft( {
-- other types of fences
minetest.register_craft( {
output = "homedecor:fence_wrought_iron_2 2",
recipe = {
{ "homedecor:pole_wrought_iron", "default:iron_lump" },
{ "homedecor:pole_wrought_iron", "default:iron_lump" },
},
})
minetest.register_craft( {
output = "homedecor:fence_wrought_iron_2 2",
output = "homedecor:fence_wrought_iron_2 4",
recipe = {
{ "homedecor:pole_wrought_iron", "default:iron_lump" },
{ "homedecor:pole_wrought_iron", "default:iron_lump" },
@ -3022,10 +3014,28 @@ minetest.register_craft({
})
minetest.register_craft({
output = "homedecor:stained_glass",
output = "homedecor:stained_glass 3",
recipe = {
{"", "dye:blue", ""},
{"dye:red", "xpanes:pane", "dye:green"},
{"dye:red", "xpanes:pane_flat", "dye:green"},
{"", "dye:yellow", ""},
},
})
minetest.register_craft({
output = "homedecor:stained_glass 2",
recipe = {
{"", "dye:blue", ""},
{"dye:red", "cottages:glass_pane_side", "dye:green"},
{"", "dye:yellow", ""},
},
})
minetest.register_craft({
output = "homedecor:stained_glass 2",
recipe = {
{"", "dye:blue", ""},
{"dye:red", "cottages:glass_pane", "dye:green"},
{"", "dye:yellow", ""},
},
})

View File

@ -118,7 +118,7 @@ minetest.register_alias("homedecor:deckchair_head", "air")
homedecor.register("deckchair_striped_blue", {
mesh = "homedecor_deckchair.obj",
tiles = {"homedecor_deckchair_striped_blue.png"},
description = S("Deck Chair"),
description = S("Deck Chair (blue striped)"),
groups = { snappy = 3 },
expand = { forward="placeholder" },
sounds = default.node_sound_wood_defaults(),
@ -251,6 +251,7 @@ homedecor.register("swing", {
place_on = "bottom"
},
on_place = function(itemstack, placer, pointed_thing)
local placer_name = placer:get_player_name() or ""
local isceiling, pos = homedecor.find_ceiling(itemstack, placer, pointed_thing)
if isceiling then
local height = 0
@ -263,7 +264,7 @@ homedecor.register("swing", {
if not testreg or not testreg.buildable_to then
if i < 1 then
minetest.chat_send_player(placer:get_player_name(), "No room under there to hang a swing.")
minetest.chat_send_player(placer_name, "No room under there to hang a swing.")
return itemstack
else
break
@ -279,11 +280,11 @@ homedecor.register("swing", {
minetest.set_node({ x=pos.x, y=pos.y-height, z=pos.z }, { name = "homedecor:swing", param2 = fdir })
if not homedecor.expect_infinite_stacks then
if not creative.is_enabled_for(placer_name) then
itemstack:take_item()
end
else
minetest.chat_send_player(placer:get_player_name(), "You have to point at the bottom side of an overhanging object to place a swing.")
minetest.chat_send_player(placer_name, "You have to point at the bottom side of an overhanging object to place a swing.")
end
return itemstack
end,
@ -367,7 +368,7 @@ local shrub_cbox = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }
for _, color in ipairs(homedecor.shrub_colors) do
minetest.register_node("homedecor:shrubbery_large_"..color, {
description = S("Shrubbery (@1)", S(color)),
description = S("Shrubbery (large, @1)", S(color)),
drawtype = "mesh",
mesh = "homedecor_cube.obj",
tiles = {"homedecor_shrubbery_"..color..".png"},

View File

@ -81,7 +81,10 @@ homedecor.register("kitchen_chair_padded", {
collision_box = kc_cbox,
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(),
after_place_node = unifieddyes.fix_rotation_nsew,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end,
after_dig_node = unifieddyes.after_dig_node,
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
@ -105,7 +108,10 @@ homedecor.register("armchair", {
groups = {snappy=3, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(),
node_box = ac_cbox,
after_place_node = unifieddyes.fix_rotation_nsew,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end,
after_dig_node = unifieddyes.after_dig_node,
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
})
@ -162,7 +168,25 @@ minetest.register_alias('armchair', 'homedecor:armchair')
homedecor.old_static_chairs = {}
for _, color in ipairs(lrfurn.colors) do
local chair_colors = {
"black",
"brown",
"blue",
"cyan",
"dark_grey",
"dark_green",
"green",
"grey",
"magenta",
"orange",
"pink",
"red",
"violet",
"white",
"yellow",
}
for _, color in ipairs(chair_colors) do
table.insert(homedecor.old_static_chairs, "homedecor:chair_"..color)
table.insert(homedecor.old_static_chairs, "homedecor:armchair_"..color)
end

View File

@ -213,20 +213,24 @@ homedecor.register("soda_machine", {
sounds = default.node_sound_wood_defaults(),
on_rotate = screwdriver.rotate_simple,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local playername = clicker:get_player_name()
local wielditem = clicker:get_wielded_item()
local wieldname = wielditem:get_name()
local fdir_to_fwd = { {0, -1}, {-1, 0}, {0, 1}, {1, 0} }
local fdir = node.param2
local pos_drop = { x=pos.x+fdir_to_fwd[fdir+1][1], y=pos.y, z=pos.z+fdir_to_fwd[fdir+1][2] }
if wieldname == "homedecor:coin" then
wielditem:take_item()
clicker:set_wielded_item(wielditem)
minetest.spawn_item(pos_drop, "homedecor:soda_can")
minetest.sound_play("insert_coin", {
pos=pos, max_hear_distance = 5
})
if not creative.is_enabled_for(playername) then
wielditem:take_item()
clicker:set_wielded_item(wielditem)
return wielditem
end
else
minetest.chat_send_player(clicker:get_player_name(), S("Please insert a coin in the machine."))
minetest.chat_send_player(playername, S("Please insert a coin in the machine."))
end
end
})

View File

@ -53,18 +53,8 @@ homedecor.wall_fdir_to_fwd = {
{ -1, 0 },
}
local placeholder_node = "homedecor:expansion_placeholder"
minetest.register_node(placeholder_node, {
description = S("Expansion placeholder (you hacker you!)"),
groups = { not_in_creative_inventory=1 },
drawtype = "airlike",
paramtype = "light",
walkable = false,
selection_box = { type = "fixed", fixed = { 0, 0, 0, 0, 0, 0 } },
is_ground_content = false,
sunlight_propagates = true,
buildable_to = false,
})
local placeholder_node = "air"
minetest.register_alias("homedecor:expansion_placeholder", "air")
--- select which node was pointed at based on it being known, not ignored, buildable_to
-- returns nil if no node could be selected
@ -94,7 +84,7 @@ local function is_buildable_to(placer_name, ...)
end
-- place one or two nodes if and only if both can be placed
local function stack(itemstack, placer, fdir, pos, def, pos2, node1, node2)
local function stack(itemstack, placer, fdir, pos, def, pos2, node1, node2, pointed_thing)
local placer_name = placer:get_player_name() or ""
if is_buildable_to(placer_name, pos, pos2) then
local lfdir = fdir or minetest.dir_to_facedir(placer:get_look_dir())
@ -111,10 +101,10 @@ local function stack(itemstack, placer, fdir, pos, def, pos2, node1, node2)
-- call after_place_node of the placed node if available
local ctrl_node_def = minetest.registered_nodes[node1]
if ctrl_node_def and ctrl_node_def.after_place_node then
ctrl_node_def.after_place_node(pos, placer)
ctrl_node_def.after_place_node(pos, placer, itemstack, pointed_thing)
end
if not homedecor.expect_infinite_stacks then
if not creative.is_enabled_for(placer_name) then
itemstack:take_item()
end
end
@ -140,7 +130,7 @@ function homedecor.stack_vertically(itemstack, placer, pointed_thing, node1, nod
local top_pos = { x=pos.x, y=pos.y+1, z=pos.z }
return stack(itemstack, placer, nil, pos, def, top_pos, node1, node2)
return stack(itemstack, placer, nil, pos, def, top_pos, node1, node2, pointed_thing)
end
-- Stack one door node above another
@ -162,7 +152,7 @@ function homedecor.stack_wing(itemstack, placer, pointed_thing, node1, node2, no
end
local top_pos = { x=pos.x, y=pos.y+1, z=pos.z }
return stack(itemstack, placer, fdir, pos, def, top_pos, node1, node2)
return stack(itemstack, placer, fdir, pos, def, top_pos, node1, node2, pointed_thing)
end
function homedecor.stack_sideways(itemstack, placer, pointed_thing, node1, node2, dir)
@ -177,13 +167,14 @@ function homedecor.stack_sideways(itemstack, placer, pointed_thing, node1, node2
local pos2 = { x = pos.x + fdir_transform[fdir+1][1], y=pos.y, z = pos.z + fdir_transform[fdir+1][2] }
return stack(itemstack, placer, fdir, pos, def, pos2, node1, node2)
return stack(itemstack, placer, fdir, pos, def, pos2, node1, node2, pointed_thing)
end
function homedecor.bed_expansion(pos, placer, itemstack, pointed_thing, trybunks)
local thisnode = minetest.get_node(pos)
local fdir = thisnode.param2
local param2 = thisnode.param2
local fdir = param2 % 8
local fxd = homedecor.wall_fdir_to_fwd[fdir+1][1]
local fzd = homedecor.wall_fdir_to_fwd[fdir+1][2]
@ -219,14 +210,23 @@ function homedecor.bed_expansion(pos, placer, itemstack, pointed_thing, trybunks
local rightpos = {x=pos.x+rxd, y=pos.y, z=pos.z+rzd}
local rightnode = minetest.get_node(rightpos)
local inv = placer:get_inventory()
local lastdye = unifieddyes.last_used_dye[placer_name]
if leftnode.name == "homedecor:bed_regular" then
local newname = string.gsub(thisnode.name, "_regular", "_kingsize")
local meta = minetest.get_meta(leftpos)
minetest.set_node(pos, {name = "air"})
minetest.set_node(leftpos, { name = newname, param2 = fdir})
minetest.set_node(leftpos, { name = newname, param2 = param2})
meta:set_string("dye", lastdye)
inv:add_item("main", lastdye)
elseif rightnode.name == "homedecor:bed_regular" then
local newname = string.gsub(thisnode.name, "_regular", "_kingsize")
local meta = minetest.get_meta(rightpos)
minetest.set_node(rightpos, {name = "air"})
minetest.set_node(pos, { name = newname, param2 = fdir})
minetest.set_node(pos, { name = newname, param2 = param2})
meta:set_string("dye", lastdye)
inv:add_item("main", lastdye)
end
local toppos = {x=pos.x, y=pos.y+1.0, z=pos.z}
@ -234,18 +234,26 @@ function homedecor.bed_expansion(pos, placer, itemstack, pointed_thing, trybunks
if trybunks and is_buildable_to(placer_name, toppos, topposfwd) then
local newname = string.gsub(thisnode.name, "_regular", "_extended")
minetest.set_node(toppos, { name = thisnode.name, param2 = fdir})
minetest.set_node(pos, { name = newname, param2 = fdir})
local newparam2 = param2 % 8
if inv:contains_item("main", lastdye) then
minetest.set_node(toppos, { name = thisnode.name, param2 = param2})
if lastdye then inv:remove_item("main", lastdye.." 1") end
else
minetest.set_node(toppos, { name = thisnode.name, param2 = newparam2})
minetest.chat_send_player(placer_name, "Ran out of "..lastdye..", using neutral color.")
unifieddyes.last_used_dye[placer_name] = nil
end
minetest.swap_node(pos, { name = newname, param2 = param2})
itemstack:take_item()
end
end
function homedecor.unextend_bed(pos)
local bottomnode = minetest.get_node({x=pos.x, y=pos.y-1.0, z=pos.z})
local fdir = bottomnode.param2
local param2 = bottomnode.param2
if bottomnode.name == "homedecor:bed_extended" then
local newname = string.gsub(bottomnode.name, "_extended", "_regular")
minetest.set_node({x=pos.x, y=pos.y-1.0, z=pos.z}, { name = newname, param2 = fdir})
minetest.swap_node({x=pos.x, y=pos.y-1.0, z=pos.z}, { name = newname, param2 = param2})
end
end

View File

@ -11,12 +11,8 @@ local modpath = minetest.get_modpath("homedecor")
local S = homedecor_i18n.gettext
homedecor = {
modpath = modpath,
-- infinite stacks
expect_infinite_stacks = minetest.setting_getbool("creative_mode") and not minetest.get_modpath("unified_inventory")
}
homedecor = {}
homedecor.modpath = modpath
-- Determine if the item being pointed at is the underside of a node (e.g a ceiling)
function homedecor.find_ceiling(itemstack, placer, pointed_thing)

View File

@ -21,6 +21,15 @@ minetest.register_node("homedecor:glowlight_half", {
"homedecor_glowlight_thick_sides.png",
"homedecor_glowlight_thick_sides.png"
},
overlay_tiles = {
{ name = "homedecor_glowlight_top_overlay.png", color = "white"},
"",
{ name = "homedecor_glowlight_thick_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_thick_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_thick_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_thick_sides_overlay.png", color = "white"},
},
use_texture_alpha = true,
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "colorwallmounted",
@ -35,7 +44,10 @@ minetest.register_node("homedecor:glowlight_half", {
groups = { snappy = 3, ud_param2_colorable = 1 },
light_source = default.LIGHT_MAX,
sounds = default.node_sound_glass_defaults(),
after_place_node = unifieddyes.fix_rotation,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end,
after_dig_node = unifieddyes.after_dig_node
})
@ -49,6 +61,15 @@ minetest.register_node("homedecor:glowlight_quarter", {
"homedecor_glowlight_thin_sides.png",
"homedecor_glowlight_thin_sides.png"
},
overlay_tiles = {
{ name = "homedecor_glowlight_top_overlay.png", color = "white"},
"",
{ name = "homedecor_glowlight_thin_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_thin_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_thin_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_thin_sides_overlay.png", color = "white"},
},
use_texture_alpha = true,
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "colorwallmounted",
@ -63,7 +84,10 @@ minetest.register_node("homedecor:glowlight_quarter", {
groups = { snappy = 3, ud_param2_colorable = 1 },
light_source = default.LIGHT_MAX-1,
sounds = default.node_sound_glass_defaults(),
after_place_node = unifieddyes.fix_rotation,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end,
after_dig_node = unifieddyes.after_dig_node
})
@ -77,6 +101,15 @@ minetest.register_node("homedecor:glowlight_small_cube", {
"homedecor_glowlight_cube_sides.png",
"homedecor_glowlight_cube_sides.png"
},
overlay_tiles = {
{ name = "homedecor_glowlight_cube_tb_overlay.png", color = "white"},
{ name = "homedecor_glowlight_cube_tb_overlay.png", color = "white"},
{ name = "homedecor_glowlight_cube_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_cube_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_cube_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_cube_sides_overlay.png", color = "white"},
},
use_texture_alpha = true,
paramtype = "light",
paramtype2 = "colorwallmounted",
drawtype = "nodebox",
@ -91,15 +124,19 @@ minetest.register_node("homedecor:glowlight_small_cube", {
groups = { snappy = 3, ud_param2_colorable = 1 },
light_source = default.LIGHT_MAX-1,
sounds = default.node_sound_glass_defaults(),
after_place_node = unifieddyes.fix_rotation,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end,
after_dig_node = unifieddyes.after_dig_node
})
homedecor.register("plasma_lamp", {
description = S("Plasma Lamp"),
drawtype = "glasslike_framed",
tiles = {"default_gold_block.png","homedecor_glass_face_clean.png"},
special_tiles = {
drawtype = "mesh",
mesh = "plasma_lamp.obj",
tiles = {
"default_gold_block.png",
{
name="homedecor_plasma_storm.png",
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0},
@ -110,16 +147,13 @@ homedecor.register("plasma_lamp", {
sunlight_propagates = true,
groups = {cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
after_place_node = function(pos, placer, itemstack, pointed_thing)
minetest.swap_node(pos, {name = "homedecor:plasma_lamp", param2 = 255})
end
})
homedecor.register("plasma_ball", {
description = S("Plasma Ball"),
mesh = "homedecor_plasma_ball.obj",
tiles = {
"homedecor_generic_plastic.png",
{ name = "homedecor_generic_plastic.png", color = homedecor.color_black },
{
name = "homedecor_plasma_ball_streamers.png",
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0},
@ -428,6 +462,8 @@ local function reg_lamp(suffix, nxt, light, brightness)
node.name = "homedecor:table_lamp_"..repl[suffix]
minetest.set_node(pos, node)
end,
on_construct = unifieddyes.on_construct,
after_place_node = unifieddyes.recolor_on_place,
after_dig_node = unifieddyes.after_dig_node
})
@ -457,8 +493,10 @@ local function reg_lamp(suffix, nxt, light, brightness)
node.name = "homedecor:standing_lamp_"..repl[suffix]
minetest.set_node(pos, node)
end,
on_construct = unifieddyes.on_construct,
after_place_node = unifieddyes.recolor_on_place,
after_dig_node = unifieddyes.after_dig_node,
expand = { top="placeholder" },
expand = { top="air" },
})
-- for old maps that had the original 3dforniture mod
@ -495,7 +533,10 @@ homedecor.register("desk_lamp", {
node_box = dlamp_cbox,
walkable = false,
groups = {snappy=3, ud_param2_colorable = 1},
after_place_node = unifieddyes.fix_rotation_nsew,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end,
after_dig_node = unifieddyes.after_dig_node,
on_rotate = unifieddyes.fix_after_screwdriver_nsew
})

View File

@ -396,7 +396,7 @@ local n = { 1, 2 }
for _, i in ipairs(n) do
homedecor.register("picture_frame"..i, {
description = S("Picture Frame"),
description = S("Picture Frame "..i),
mesh = "homedecor_picture_frame.obj",
tiles = {
"homedecor_picture_frame_image"..i..".png",

View File

@ -1,44 +0,0 @@
# Blender v2.72 (sub 0) OBJ File: 'unifiedbricks_brick_block.blend'
# www.blender.org
o Cube
v 0.496092 0.496092 0.496092
v 0.496092 0.496092 -0.496092
v -0.496092 0.496092 -0.496092
v -0.496092 0.496092 0.496092
v 0.496092 -0.496092 0.496092
v 0.496092 -0.496092 -0.496092
v -0.496092 -0.496092 -0.496092
v -0.496092 -0.496092 0.496092
v 0.499750 0.499750 0.499750
v 0.499750 0.499750 -0.499750
v -0.499750 0.499750 -0.499750
v -0.499750 0.499750 0.499750
v 0.499750 -0.499750 0.499750
v 0.499750 -0.499750 -0.499750
v -0.499750 -0.499750 -0.499750
v -0.499750 -0.499750 0.499750
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vn 0.000000 -1.000000 0.000000
vn -1.000000 0.000000 0.000000
vn 0.000000 1.000000 0.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 0.000000 1.000000
g Cube_Cube_base
s off
f 8/1/1 7/2/1 6/3/1 5/4/1
f 4/2/2 3/3/2 7/4/2 8/1/2
f 1/3/3 2/4/3 3/1/3 4/2/3
f 2/2/4 1/3/4 5/4/4 6/1/4
f 3/2/5 2/3/5 6/4/5 7/1/5
f 1/2/6 4/3/6 8/4/6 5/1/6
g Cube_Cube_overlay
f 16/1/1 15/2/1 14/3/1 13/4/1
f 12/2/2 11/3/2 15/4/2 16/1/2
f 9/3/3 10/4/3 11/1/3 12/2/3
f 10/2/4 9/3/4 13/4/4 14/1/4
f 11/2/5 10/3/5 14/4/5 15/1/5
f 9/2/6 12/3/6 16/4/6 13/1/6

View File

@ -1,243 +1,206 @@
# Blender v2.72 (sub 0) OBJ File: 'book.blend'
# Blender v2.78 (sub 0) OBJ File: 'book.blend'
# www.blender.org
o Cube.002_Cube.001
v -0.216625 -0.161995 -0.448008
v -0.216625 -0.149566 -0.485966
v -0.216625 -0.113157 -0.485966
v -0.216625 -0.142021 -0.448008
v -0.208120 -0.115781 -0.485966
v -0.208120 -0.142021 -0.448008
v 0.220555 -0.113157 -0.485966
v 0.220555 0.159347 -0.485966
v 0.212050 -0.115781 -0.485966
v -0.208120 -0.161995 -0.448008
v -0.208120 0.148926 -0.485966
v -0.208120 0.155653 -0.448008
v 0.212051 0.155653 -0.448008
v 0.212051 0.148926 -0.485966
v -0.208120 -0.152482 -0.485966
v 0.212050 -0.152482 -0.485966
v 0.220555 -0.161995 -0.448008
v 0.212050 -0.161995 -0.448008
v 0.212050 -0.145193 -0.500002
v -0.208120 -0.145193 -0.500002
v -0.208120 -0.115781 -0.500002
v 0.212050 -0.115781 -0.500002
v 0.212050 -0.115781 -0.396013
v -0.208120 -0.115781 -0.396013
v -0.208120 -0.145193 -0.396013
v 0.212050 -0.145193 -0.396013
v 0.212050 -0.152482 -0.410049
v -0.208120 -0.152482 -0.410049
v 0.212051 0.148926 -0.410049
v -0.208120 0.148926 -0.410049
v 0.212050 -0.115781 -0.410049
v 0.220555 0.159347 -0.410049
v 0.220555 -0.113157 -0.410049
v -0.208120 -0.115781 -0.410049
v -0.216625 -0.113157 -0.410049
v -0.216625 -0.149566 -0.410049
v -0.216625 -0.115781 -0.396013
v -0.216625 -0.141549 -0.396013
v 0.220555 -0.149566 -0.410049
v 0.220555 -0.141549 -0.396013
v 0.220555 0.159346 -0.396013
v -0.216624 0.159347 -0.396013
v 0.220555 -0.115781 -0.396013
v -0.216624 0.159347 -0.410049
v -0.216625 -0.115781 -0.500002
v -0.216625 -0.141549 -0.500002
v 0.212050 -0.142021 -0.448008
v 0.220555 -0.149566 -0.485966
v 0.220555 -0.141549 -0.500002
v 0.220555 0.159346 -0.500002
v -0.216624 0.159347 -0.500002
v 0.220555 -0.142021 -0.448008
v 0.220555 -0.115781 -0.500002
v -0.216624 0.159347 -0.485966
v -0.216625 -0.162729 -0.448008
v -0.216625 -0.150269 -0.486432
v -0.208120 -0.162729 -0.448008
v -0.208120 -0.153192 -0.486432
v 0.212050 -0.153192 -0.486432
v 0.220555 -0.162729 -0.448008
v 0.212050 -0.162729 -0.448008
v 0.212050 -0.145885 -0.500640
v -0.208120 -0.145885 -0.500640
v -0.208120 -0.116399 -0.500640
v 0.212050 -0.116399 -0.500640
v 0.212050 -0.116399 -0.395375
v -0.208120 -0.116399 -0.395375
v -0.208120 -0.145885 -0.395375
v 0.212050 -0.145885 -0.395375
v 0.212050 -0.153192 -0.409583
v -0.208120 -0.153192 -0.409583
v -0.216625 -0.150269 -0.409583
v -0.216625 -0.116399 -0.395375
v -0.216625 -0.142232 -0.395375
v 0.220555 -0.150269 -0.409583
v 0.220555 -0.142232 -0.395375
v 0.220555 0.159416 -0.395375
v -0.216624 0.159417 -0.395375
v 0.220555 -0.116399 -0.395375
v -0.216625 -0.116399 -0.500640
v -0.216625 -0.142232 -0.500640
v 0.220555 -0.150269 -0.486432
v 0.220555 -0.142232 -0.500640
v 0.220555 0.159416 -0.500640
v -0.216624 0.159417 -0.500640
v 0.220555 -0.116399 -0.500640
vt 0.921987 0.383861
vt 0.921987 0.340448
vt 0.931829 0.340448
vt 0.931829 0.383861
vt 0.931829 0.427274
vt 0.921987 0.427274
vt 0.768089 0.490273
vt 0.722954 0.490273
vt 0.722954 0.009727
vt 0.768089 0.009727
vt 0.768089 0.500000
vt 0.722404 0.500000
vt 0.809636 0.490273
vt 0.809086 0.500000
vt 0.352434 0.000000
vt 0.670829 0.000000
vt 0.670829 0.009727
vt 0.670829 0.490273
vt 0.670829 0.500000
vt 0.352433 0.499999
vt 0.809636 0.009727
vt 0.809086 0.000000
vt 0.823601 0.000000
vt 0.824288 0.009727
vt 0.012060 0.509727
vt 0.000000 0.500001
vt 0.315359 0.500000
vt 0.318396 0.509727
vt 0.700649 0.000000
vt 0.704866 0.009727
vt 0.731001 0.867517
vt 0.731001 0.844673
vt 0.774928 0.811661
vt 0.774928 0.853302
vt 0.687072 0.853302
vt 0.687072 0.811661
vt 0.774928 0.500000
vt 0.791171 0.500000
vt 0.791171 0.814662
vt 0.791171 0.844133
vt 0.851343 0.522844
vt 0.851343 0.500000
vt 0.895271 0.514215
vt 0.895271 0.555856
vt 0.912144 0.383862
vt 0.912144 0.340448
vt 0.334639 0.500000
vt 0.334639 0.999999
vt 0.318396 0.999999
vt 0.318396 0.500000
vt 0.895271 0.867517
vt 0.911514 0.523384
vt 0.911514 0.552855
vt 0.911514 0.867516
vt 0.824288 0.490273
vt 0.823601 0.500000
vt 0.807415 0.555856
vt 0.807415 0.514215
vt 0.768089 0.000000
vt 0.722404 0.000000
vt 0.912144 0.427274
vt 0.318396 0.990273
vt 0.315359 1.000000
vt 0.000000 1.000000
vt 0.012060 0.990274
vt 0.704866 0.490273
vt 0.318396 0.490273
vt 0.318396 0.009727
vt 0.352433 0.009727
vt 0.352433 0.490273
vt 0.705553 0.490273
vt 0.705553 0.009727
vt 0.670829 0.509727
vt 0.364493 0.509726
vt 0.667792 0.500000
vt 0.318396 0.000000
vt 0.348216 0.000000
vt 0.704866 0.500000
vt 0.807415 0.867517
vt 0.791172 0.867516
vt 0.791171 0.552855
vt 0.791171 0.523384
vt 0.336190 0.500000
vt 0.352433 0.999999
vt 0.336190 0.999999
vt 0.670829 0.844133
vt 0.670829 0.814662
vt 0.687072 0.500000
vt 0.348216 0.500000
vt 0.364493 0.990273
vt 0.670829 0.990273
vt 0.667792 1.000000
vt 0.704866 0.000000
vt 0.000000 0.000001
vt 0.668539 0.639838
vt 0.640677 0.639838
vt 0.640677 0.630641
vt 0.672479 0.630641
vt 0.439305 1.000000
vt 0.439305 0.319104
vt 0.527160 0.379125
vt 0.527160 0.984613
vt 0.087857 1.000000
vt 0.087857 0.319104
vt 0.175712 0.334491
vt 0.175712 0.939979
vt 0.351448 0.984613
vt 0.351448 0.379125
vt 0.000000 0.939979
vt 0.000000 0.334491
vt 0.351448 0.000000
vt 0.351448 0.961094
vt 0.263593 0.961094
vt 0.263593 0.000000
vt 0.175736 0.000000
vt 0.175736 0.961094
vn -0.123900 0.803100 -0.582900
vn -0.123900 0.803000 0.582900
vn 0.000000 -0.970000 0.243100
vn 0.162500 -0.947900 0.274000
vn 0.162500 -0.947900 -0.274000
vn 0.000000 0.000000 -1.000000
vn -0.320700 -0.831600 -0.453400
vn 0.000000 -0.000000 1.000000
vn -1.000000 0.000000 0.000000
vn 1.000000 0.000000 0.000000
vn 0.123900 0.803100 -0.582900
vn 0.000000 1.000000 -0.000000
vn 0.320700 -0.831600 -0.453400
vn -0.162500 -0.947900 -0.274000
vn 0.000000 -0.970000 -0.243100
vn -0.162500 -0.947900 0.274000
vn 0.123900 0.803000 0.582900
vn 0.000000 -0.887500 -0.460900
vn 0.000000 -0.887500 0.460900
vn 0.320700 -0.831600 0.453400
vn -0.320700 -0.831600 0.453400
vn 0.000000 0.984700 -0.174500
vn -0.000000 0.984700 0.174500
vn 0.000000 -0.970600 0.240900
vn 0.163000 -0.948500 0.271500
vn 0.163000 -0.948500 -0.271500
vn -0.322100 -0.833000 -0.449800
vn 0.322100 -0.833000 -0.449800
vn -0.163000 -0.948500 -0.271500
vn 0.000000 -0.970600 -0.240900
vn -0.163000 -0.948500 0.271500
vn 0.000000 -0.889300 -0.457400
vn 0.000000 -0.889300 0.457400
vn 0.322100 -0.833000 0.449800
vn -0.322100 -0.833000 0.449800
v 0.161995 -0.448008 0.216625
v 0.149566 -0.485966 0.216625
v 0.113157 -0.485966 0.216625
v 0.142021 -0.448008 0.216625
v 0.115781 -0.485966 0.208120
v 0.142021 -0.448008 0.208120
v 0.113157 -0.485966 -0.220555
v -0.159347 -0.485966 -0.220555
v 0.115781 -0.485966 -0.212050
v 0.161995 -0.448008 0.208120
v -0.148926 -0.485966 0.208120
v -0.155653 -0.448008 0.208120
v -0.155653 -0.448008 -0.212051
v -0.148926 -0.485966 -0.212051
v 0.152482 -0.485966 0.208120
v 0.152482 -0.485966 -0.212050
v 0.161995 -0.448008 -0.220555
v 0.161995 -0.448008 -0.212050
v 0.145193 -0.500002 -0.212050
v 0.145193 -0.500002 0.208120
v 0.115781 -0.500002 0.208120
v 0.115781 -0.500002 -0.212050
v 0.115781 -0.396013 -0.212050
v 0.115781 -0.396013 0.208120
v 0.145193 -0.396013 0.208120
v 0.145193 -0.396013 -0.212050
v 0.152482 -0.410049 -0.212050
v 0.152482 -0.410049 0.208120
v -0.148926 -0.410049 -0.212051
v -0.148926 -0.410049 0.208120
v 0.115781 -0.410049 -0.212050
v -0.159347 -0.410049 -0.220555
v 0.113157 -0.410049 -0.220555
v 0.115781 -0.410049 0.208120
v 0.113157 -0.410049 0.216625
v 0.149566 -0.410049 0.216625
v 0.115781 -0.396013 0.216625
v 0.141549 -0.396013 0.216625
v 0.149566 -0.410049 -0.220555
v 0.141549 -0.396013 -0.220555
v -0.159346 -0.396013 -0.220555
v -0.159347 -0.396013 0.216624
v 0.115781 -0.396013 -0.220555
v -0.159347 -0.410049 0.216624
v 0.115781 -0.500002 0.216625
v 0.141549 -0.500002 0.216625
v 0.142021 -0.448008 -0.212050
v 0.149566 -0.485966 -0.220555
v 0.141549 -0.500002 -0.220555
v -0.159346 -0.500002 -0.220555
v -0.159347 -0.500002 0.216624
v 0.142021 -0.448008 -0.220555
v 0.115781 -0.500002 -0.220555
v -0.159347 -0.485966 0.216624
vt 0.9220 0.3839
vt 0.9220 0.3404
vt 0.9318 0.3404
vt 0.9318 0.3839
vt 0.9318 0.4273
vt 0.9220 0.4273
vt 0.7681 0.4903
vt 0.7230 0.4903
vt 0.7230 0.0097
vt 0.7681 0.0097
vt 0.7681 0.5000
vt 0.7224 0.5000
vt 0.8096 0.4903
vt 0.8091 0.5000
vt 0.3524 0.0000
vt 0.6708 0.0000
vt 0.6708 0.0097
vt 0.6708 0.4903
vt 0.6708 0.5000
vt 0.3524 0.5000
vt 0.8096 0.0097
vt 0.8091 0.0000
vt 0.8236 0.0000
vt 0.8243 0.0097
vt 0.0121 0.5097
vt 0.0000 0.5000
vt 0.3154 0.5000
vt 0.3184 0.5097
vt 0.7006 0.0000
vt 0.7049 0.0097
vt 0.7310 0.8675
vt 0.7310 0.8447
vt 0.7749 0.8117
vt 0.7749 0.8533
vt 0.6871 0.8533
vt 0.6871 0.8117
vt 0.7749 0.5000
vt 0.7912 0.5000
vt 0.7912 0.8147
vt 0.7912 0.8441
vt 0.8513 0.5228
vt 0.8513 0.5000
vt 0.8953 0.5142
vt 0.8953 0.5559
vt 0.9220 0.3404
vt 0.9220 0.3839
vt 0.9121 0.3839
vt 0.9121 0.3404
vt 0.3346 0.5000
vt 0.3346 1.0000
vt 0.3184 1.0000
vt 0.3184 0.5000
vt 0.8953 0.8675
vt 0.9115 0.5234
vt 0.9115 0.5529
vt 0.9115 0.8675
vt 0.8243 0.4903
vt 0.8236 0.5000
vt 0.8074 0.5559
vt 0.8074 0.5142
vt 0.7681 0.0000
vt 0.7224 0.0000
vt 0.9220 0.4273
vt 0.9121 0.4273
vt 0.3184 0.9903
vt 0.3154 1.0000
vt 0.0000 1.0000
vt 0.0121 0.9903
vt 0.7049 0.4903
vt 0.3184 0.4903
vt 0.3184 0.0097
vt 0.3524 0.0097
vt 0.3524 0.4903
vt 0.7056 0.4903
vt 0.7056 0.0097
vt 0.6708 0.5097
vt 0.3645 0.5097
vt 0.3524 0.5000
vt 0.6678 0.5000
vt 0.3184 0.0000
vt 0.3482 0.0000
vt 0.7049 0.5000
vt 0.8074 0.8675
vt 0.7912 0.8675
vt 0.7912 0.5529
vt 0.7912 0.5234
vt 0.3362 0.5000
vt 0.3524 1.0000
vt 0.3362 1.0000
vt 0.6708 0.8441
vt 0.6708 0.8147
vt 0.6708 0.5000
vt 0.6871 0.5000
vt 0.3482 0.5000
vt 0.3184 0.5000
vt 0.3645 0.9903
vt 0.6708 0.9903
vt 0.6678 1.0000
vt 0.7049 0.0000
vt 0.0000 0.5000
vt 0.0000 0.0000
vt 0.6685 0.6398
vt 0.6407 0.6398
vt 0.6407 0.6306
vt 0.6725 0.6306
vt 0.4393 1.0000
vt 0.4393 0.3191
vt 0.5272 0.3791
vt 0.5272 0.9846
vt 0.0879 1.0000
vt 0.0879 0.3191
vt 0.1757 0.3345
vt 0.1757 0.9400
vt 0.3514 0.9846
vt 0.3514 0.3791
vt 0.0000 0.9400
vt 0.0000 0.3345
vt 0.3514 0.0000
vt 0.3514 0.9611
vt 0.2636 0.9611
vt 0.2636 0.0000
vt 0.1757 0.0000
vt 0.1757 0.9611
vn -0.8031 -0.5829 0.1239
vn -0.8030 0.5829 0.1239
vn 0.9700 0.2431 -0.0000
vn 0.9479 0.2740 -0.1625
vn 0.9479 -0.2740 -0.1625
vn -0.0000 -1.0000 -0.0000
vn 0.8316 -0.4534 0.3207
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 0.0000 -1.0000
vn -0.8031 -0.5829 -0.1239
vn -1.0000 -0.0000 -0.0000
vn 0.8316 -0.4534 -0.3207
vn 0.9479 -0.2740 0.1625
vn 0.9700 -0.2431 -0.0000
vn 0.9479 0.2740 0.1625
vn -0.8030 0.5829 -0.1239
vn 0.8875 -0.4609 -0.0000
vn 0.8875 0.4609 -0.0000
vn 0.8316 0.4534 -0.3207
vn 0.8316 0.4534 0.3207
vn -0.9847 -0.1745 0.0000
vn -0.9847 0.1745 0.0000
g Cube.002_Cube.001_Cube.002_Cube.001_cover
s off
f 47/1/1 31/2/1 33/3/1 52/4/1
@ -253,58 +216,37 @@ f 1/31/9 4/32/9 3/33/9 2/34/9
f 1/31/9 36/35/9 35/36/9 4/32/9
f 2/34/9 3/33/9 54/37/9 51/38/9 45/39/9 46/40/9
f 52/41/10 17/42/10 48/43/10 7/44/10
f 34/2/11 6/1/11 4/45/11 35/46/11
f 50/47/12 51/48/12 54/49/12 8/50/12
f 8/51/10 7/44/10 48/43/10 49/52/10 53/53/10 50/54/10
f 19/55/13 49/56/13 48/14/13 16/13/13
f 52/41/10 33/57/10 39/58/10 17/42/10
f 10/10/14 1/59/14 2/22/14 15/21/14
f 34/45/11 6/46/11 4/47/11 35/48/11
f 50/49/12 51/50/12 54/51/12 8/52/12
f 8/53/10 7/44/10 48/43/10 49/54/10 53/55/10 50/56/10
f 19/57/13 49/58/13 48/14/13 16/13/13
f 52/41/10 33/59/10 39/60/10 17/42/10
f 10/10/14 1/61/14 2/22/14 15/21/14
f 18/7/15 10/10/15 15/21/15 16/13/15
f 10/10/16 28/9/16 36/60/16 1/59/16
f 5/6/17 3/61/17 4/45/17 6/1/17
f 9/62/8 7/63/8 8/64/8 14/65/8
f 16/13/18 15/21/18 20/24/18 19/55/18
f 22/17/6 19/30/6 20/66/6 21/18/6
f 23/67/8 24/68/8 25/69/8 26/70/8
f 27/8/19 26/71/19 25/72/19 28/9/19
f 31/73/6 29/74/6 32/20/6 33/75/6
f 25/69/8 24/68/8 37/76/8 38/77/8
f 26/71/20 27/8/20 39/12/20 40/78/20
f 32/79/10 41/80/10 43/81/10 40/82/10 39/58/10 33/57/10
f 41/83/12 32/20/12 44/84/12 42/85/12
f 36/35/9 38/86/9 37/87/9 42/19/9 44/88/9 35/36/9
f 23/67/8 26/70/8 40/89/8 43/50/8
f 30/90/6 34/91/6 35/92/6 44/84/6
f 28/9/21 25/72/21 38/93/21 36/60/21
f 29/74/6 30/90/6 44/84/6 32/20/6
f 41/26/8 42/94/8 37/76/8 24/68/8 23/67/8 43/50/8
f 54/26/8 11/25/8 14/65/8 8/64/8
f 46/95/6 45/96/6 21/97/6 20/98/6
f 10/10/16 28/9/16 36/62/16 1/61/16
f 5/63/17 3/64/17 4/47/17 6/46/17
f 9/65/8 7/66/8 8/67/8 14/68/8
f 16/13/18 15/21/18 20/24/18 19/57/18
f 22/17/6 19/30/6 20/69/6 21/18/6
f 23/70/8 24/71/8 25/72/8 26/73/8
f 27/8/19 26/74/19 25/75/19 28/9/19
f 31/76/6 29/77/6 32/78/6 33/79/6
f 25/72/8 24/71/8 37/80/8 38/81/8
f 26/74/20 27/8/20 39/12/20 40/82/20
f 32/83/10 41/84/10 43/85/10 40/86/10 39/60/10 33/59/10
f 41/87/12 32/78/12 44/88/12 42/89/12
f 36/35/9 38/90/9 37/91/9 42/92/9 44/93/9 35/36/9
f 23/70/8 26/73/8 40/94/8 43/95/8
f 30/96/6 34/97/6 35/98/6 44/88/6
f 28/9/21 25/75/21 38/99/21 36/62/21
f 29/77/6 30/96/6 44/88/6 32/78/6
f 41/100/8 42/101/8 37/80/8 24/71/8 23/70/8 43/95/8
f 54/26/8 11/25/8 14/68/8 8/67/8
f 46/102/6 45/103/6 21/104/6 20/105/6
g Cube.002_Cube.001_Cube.002_Cube.001_edges
f 13/99/10 47/100/10 9/101/10 14/102/10
f 6/103/9 12/104/9 11/105/9 5/106/9
f 13/99/10 29/107/10 31/108/10 47/100/10
f 6/103/9 34/109/9 30/110/9 12/104/9
f 14/111/22 11/112/22 12/113/22 13/114/22
f 29/115/23 13/114/23 12/113/23 30/116/23
g Cube.002_Cube.001_Cube.002_Cube.001_trim
f 61/7/24 70/8/24 71/9/24 57/10/24
f 70/8/25 61/7/25 60/11/25 75/12/25
f 59/13/26 82/14/26 60/11/26 61/7/26
f 84/15/6 86/16/6 65/17/6 64/18/6 80/19/6 85/20/6
f 58/21/27 56/22/27 81/23/27 63/24/27
f 65/17/6 86/16/6 83/29/6 62/30/6
f 62/55/28 83/56/28 82/14/28 59/13/28
f 57/10/29 55/59/29 56/22/29 58/21/29
f 61/7/30 57/10/30 58/21/30 59/13/30
f 57/10/31 71/9/31 72/60/31 55/59/31
f 59/13/32 58/21/32 63/24/32 62/55/32
f 65/17/6 62/30/6 63/66/6 64/18/6
f 66/67/8 67/68/8 68/69/8 69/70/8
f 70/8/33 69/71/33 68/72/33 71/9/33
f 68/69/8 67/68/8 73/76/8 74/77/8
f 69/71/34 70/8/34 75/12/34 76/78/34
f 66/67/8 69/70/8 76/89/8 79/50/8
f 71/9/35 68/72/35 74/93/35 72/60/35
f 77/26/8 78/94/8 73/76/8 67/68/8 66/67/8 79/50/8
f 81/95/6 80/96/6 64/97/6 63/98/6
f 13/106/10 47/107/10 9/108/10 14/109/10
f 6/110/9 12/111/9 11/112/9 5/113/9
f 13/106/10 29/114/10 31/115/10 47/107/10
f 6/110/9 34/116/9 30/117/9 12/111/9
f 14/118/22 11/119/22 12/120/22 13/121/22
f 29/122/23 13/121/23 12/120/23 30/123/23

View File

@ -1,327 +1,335 @@
# Blender v2.72 (sub 0) OBJ File: 'book-open.blend'
# Blender v2.78 (sub 0) OBJ File: 'book-open.blend'
# www.blender.org
o Cube.002_Cube.001
v -0.216625 0.012428 -0.485966
v 0.220555 -0.000000 -0.486750
v 0.220555 0.321341 -0.485966
v -0.208120 -0.000001 -0.462863
v -0.208120 0.310920 -0.485966
v -0.208120 0.306022 -0.464409
v 0.212051 0.306022 -0.464409
v 0.212051 0.310921 -0.485966
v 0.212050 -0.000000 -0.462862
v 0.212050 0.016802 -0.500002
v -0.208120 0.016801 -0.500002
v -0.208120 0.046213 -0.500002
v 0.212050 0.046214 -0.500002
v -0.216625 0.046213 -0.500002
v -0.216625 0.020445 -0.500002
v 0.220555 0.012429 -0.485966
v 0.220555 0.020446 -0.500002
v 0.220555 0.321340 -0.500002
v -0.216624 0.321341 -0.500002
v 0.220555 0.046214 -0.500002
v -0.216624 0.321341 -0.485966
v -0.208120 0.238235 -0.450057
v -0.216625 -0.000001 -0.486750
v 0.212051 0.238236 -0.450057
v -0.208120 -0.306023 -0.464409
v 0.212051 -0.306023 -0.464409
v -0.208120 -0.238237 -0.450057
v 0.212051 -0.238237 -0.450057
v 0.212050 -0.046214 -0.500003
v -0.208120 -0.046215 -0.500003
v -0.208120 -0.016803 -0.500003
v 0.212050 -0.016803 -0.500003
v -0.216625 -0.000001 -0.481442
v 0.220555 -0.000000 -0.481442
v 0.212051 -0.310922 -0.485967
v -0.208120 -0.310922 -0.485967
v 0.220555 -0.321342 -0.485967
v -0.216625 -0.012430 -0.485967
v -0.216625 -0.046215 -0.500003
v -0.216625 -0.020447 -0.500003
v 0.220555 -0.012429 -0.485967
v 0.220555 -0.020446 -0.500003
v 0.220555 -0.321341 -0.500003
v -0.216624 -0.321343 -0.500003
v 0.220555 -0.046214 -0.500003
v -0.216624 -0.321343 -0.485967
v -0.208120 -0.000001 -0.486750
v 0.212050 -0.000000 -0.486750
v 0.212051 -0.086920 -0.442244
v -0.208120 -0.086920 -0.442244
v 0.212051 0.086847 -0.442244
v -0.208120 0.086847 -0.442244
v 0.212050 0.043405 -0.447755
v -0.208120 0.043405 -0.447755
v 0.212050 -0.043478 -0.447755
v -0.208120 -0.043478 -0.447755
v -0.216625 -0.010224 -0.490836
v -0.216625 0.006214 -0.482857
v 0.220555 0.006214 -0.482857
v -0.208120 0.008400 -0.490836
v 0.212050 0.008401 -0.490836
v 0.220555 0.010223 -0.490836
v -0.216625 0.010222 -0.490836
v 0.220555 -0.010223 -0.490836
v 0.212050 -0.008401 -0.490836
v -0.208120 -0.008402 -0.490836
v 0.220555 -0.006215 -0.482858
v -0.216625 -0.006215 -0.482858
v 0.212050 0.012429 -0.485966
v 0.212050 -0.000000 -0.481442
v 0.212050 -0.012429 -0.485967
v 0.212050 0.006214 -0.482857
v 0.212050 -0.006215 -0.482858
v -0.208120 0.012428 -0.485966
v -0.208120 -0.000001 -0.481442
v -0.208120 -0.012430 -0.485967
v -0.208120 0.006214 -0.482857
v -0.208120 -0.006215 -0.482858
vt 0.965735 0.839196
vt 0.711783 0.839196
vt 0.711783 0.832541
vt 0.711783 0.503765
vt 0.711783 0.497110
vt 0.965736 0.497110
vt 0.395683 0.494736
vt 0.395683 0.261171
vt 0.403533 0.261171
vt 0.403532 0.502890
vt 0.687998 0.839196
vt 0.684635 0.832541
vt 0.987044 0.738829
vt 0.987044 0.497110
vt 1.000000 0.497110
vt 0.999999 0.712393
vt 0.999999 0.732556
vt 0.992051 0.000000
vt 0.992051 0.342086
vt 0.979145 0.342086
vt 0.979145 0.000000
vt 0.969912 1.000000
vt 0.969911 0.758280
vt 0.982867 0.764553
vt 0.982867 0.784716
vt 0.982868 0.999999
vt 0.403533 0.241720
vt 0.395683 0.241720
vt 0.395683 0.008154
vt 0.403532 0.000000
vt 0.684634 0.503765
vt 0.007850 0.008154
vt 0.000000 0.000000
vt 0.657486 0.832541
vt 0.657486 0.503765
vt 0.657486 0.497110
vt 0.681271 0.497110
vt 0.969911 0.497110
vt 0.982867 0.497110
vt 0.982868 0.712393
vt 0.982868 0.732556
vt 0.969912 0.738829
vt 0.966239 0.000000
vt 0.966239 0.342086
vt 0.987044 0.758280
vt 1.000000 0.764553
vt 1.000000 0.784716
vt 0.999999 1.000000
vt 0.987043 1.000000
vt 0.681271 0.839196
vt 0.657486 0.839196
vt 0.000000 0.261171
vt 0.007850 0.261171
vt 0.007850 0.494736
vt 0.000000 0.502891
vt 0.403534 0.839196
vt 0.403533 0.497110
vt 0.687998 0.497110
vt 0.974407 0.740555
vt 0.970635 0.748555
vt 0.967042 0.743692
vt 0.965736 0.748555
vt 0.967042 0.753417
vt 0.974406 0.756554
vt 0.991539 0.740555
vt 0.987768 0.748555
vt 0.984174 0.743692
vt 0.982868 0.748555
vt 0.984174 0.753417
vt 0.991539 0.756554
vt 0.044849 0.844977
vt 0.035593 0.844977
vt 0.035446 0.838322
vt 0.044554 0.838322
vt 0.956803 0.342087
vt 0.956803 0.335432
vt 0.964557 0.335432
vt 0.947366 0.342087
vt 0.949048 0.335432
vt 0.045143 0.838322
vt 0.054251 0.838322
vt 0.054104 0.844977
vt 0.044554 0.509546
vt 0.035446 0.509546
vt 0.035593 0.502890
vt 0.044849 0.502891
vt 0.964557 0.006655
vt 0.956803 0.006655
vt 0.956803 0.000000
vt 0.949048 0.006655
vt 0.947366 0.000000
vt 0.054104 0.502891
vt 0.054251 0.509546
vt 0.045143 0.509546
vt 0.000000 0.256308
vt 0.000000 0.251445
vt 0.007850 0.251445
vt 0.007850 0.256308
vt 0.000000 0.246582
vt 0.000000 0.241720
vt 0.007850 0.241720
vt 0.007850 0.246582
vt 0.403533 0.251445
vt 0.403533 0.256308
vt 0.395683 0.256308
vt 0.395683 0.251445
vt 0.403533 0.246582
vt 0.395683 0.246582
vt 0.779948 0.000000
vt 0.779948 1.000000
vt 0.724984 1.000000
vt 0.724983 0.000000
vt 0.717416 1.000000
vt 0.662450 1.000000
vt 0.662449 0.000000
vt 0.717416 0.000000
vt 0.184400 1.000000
vt 0.126957 0.970419
vt 0.221962 0.896695
vt 0.485666 0.793134
vt 0.471964 0.896524
vt 0.376957 0.970419
vt 0.216239 0.433002
vt 0.126957 0.260013
vt 0.059402 0.000000
vt 0.001957 0.029581
vt 0.009688 0.014790
vt 0.235664 0.793305
vt 0.013207 0.000000
vt 0.091241 0.566998
vt 0.055557 0.728328
vt 0.001957 0.739987
vt 0.110666 0.206866
vt 0.134686 0.985210
vt 0.096964 0.103476
vt 0.180555 0.271672
vt 0.138205 1.000000
vt 0.341239 0.566998
vt 0.305555 0.728328
vt 0.251957 0.739987
vt 0.251957 0.029581
vt 0.360664 0.206695
vt 0.388207 1.000000
vt 0.384688 0.985210
vt 0.434402 1.000000
vt 0.346962 0.103305
vt 0.466241 0.433002
vt 0.376957 0.260013
vt 0.309400 0.000000
vt 0.259687 0.014790
vt 0.263205 0.000000
vt 0.430558 0.271672
vt 0.636817 0.156314
vt 0.875000 0.156314
vt 0.875000 0.984312
vt 0.636817 0.984312
vt 0.000000 0.156314
vt 0.125000 0.156314
vt 0.125000 0.984312
vt 0.000000 0.984313
vt 1.000000 0.156314
vt 1.000000 0.984313
vt 0.363296 0.156314
vt 0.431676 0.156314
vt 0.431676 0.984311
vt 0.363296 0.984312
vt 0.500000 0.156314
vt 0.568437 0.156314
vt 0.568437 0.984311
vt 0.500000 0.984311
vn 0.577300 0.577300 -0.577300
vn 0.707100 0.000000 -0.707100
vn 0.000000 0.000000 -1.000000
vn -0.707100 0.000000 -0.707100
vn -0.577300 0.577300 -0.577300
vn -0.246900 -0.280700 0.927500
vn -0.658800 -0.172900 0.732100
vn -0.762700 -0.148700 0.629400
vn -0.577300 -0.577300 0.577300
vn 0.668800 -0.216600 -0.711100
vn 0.071700 -0.428700 -0.900500
vn -0.762700 0.148700 0.629400
vn -0.577300 0.577300 0.577300
vn -0.668800 -0.216600 -0.711100
vn 0.577300 0.577300 0.577300
vn 0.762700 0.148700 0.629400
vn -0.658800 0.172900 0.732100
vn -0.246900 0.280700 0.927500
vn -0.071700 -0.428700 -0.900500
vn 0.246900 0.280700 0.927500
vn -0.071700 0.428800 -0.900500
vn 0.071700 0.428800 -0.900500
vn -0.668800 0.216600 -0.711100
vn 0.577300 -0.577300 0.577300
vn 0.577300 -0.577300 -0.577300
vn 0.668800 0.216600 -0.711100
vn 0.762700 -0.148700 0.629400
vn -0.577300 -0.577300 -0.577300
vn 0.658800 -0.172900 0.732100
vn 0.246900 -0.280700 0.927500
vn 0.794100 0.350300 -0.496700
vn 0.814600 0.000000 -0.580000
vn 0.681100 -0.246900 0.689300
vn 0.660400 0.000000 0.750900
vn 0.681100 0.246800 0.689300
vn 0.794100 -0.350300 -0.496700
vn -0.794100 -0.350300 -0.496700
vn -0.814600 0.000000 -0.580000
vn -0.681100 0.246800 0.689300
vn -0.660400 0.000000 0.750900
vn -0.681100 -0.246900 0.689300
vn -0.794100 0.350300 -0.496700
vn -0.062900 0.569600 -0.819500
vn -0.023700 0.000000 -0.999700
vn -0.062900 -0.569600 -0.819500
vn 0.062900 0.569600 -0.819500
vn 0.023700 0.000000 -0.999700
vn 0.062900 -0.569600 -0.819500
vn 0.760600 0.000000 0.649100
vn 0.735000 -0.228600 0.638300
vn 0.658800 0.172900 0.732100
vn 0.735000 0.228600 0.638300
vn -0.735000 -0.228600 0.638300
vn -0.760600 0.000000 0.649100
vn -0.735000 0.228600 0.638300
vn -0.603500 0.559600 0.567900
vn 0.603500 0.559600 0.567900
vn 0.603500 -0.559600 0.567900
vn -0.603500 -0.559600 0.567900
vn 0.789000 -0.000200 0.614300
vn 0.684400 -0.166600 0.709800
vn -0.687600 0.027100 0.725500
vn -0.684400 0.166400 0.709800
vn 0.689800 0.093900 0.717800
vn 0.687600 -0.027100 0.725500
vn 0.689800 -0.093900 0.717800
vn 0.687600 0.027100 0.725500
vn 0.684400 0.166400 0.709800
vn -0.689800 0.093900 0.717800
vn -0.687600 -0.027100 0.725500
vn -0.789000 -0.000200 0.614300
vn -0.684400 -0.166600 0.709800
vn -0.689800 -0.093900 0.717800
v -0.012428 -0.485966 0.216625
v 0.000000 -0.486750 -0.220555
v -0.321341 -0.485966 -0.220555
v 0.000001 -0.462863 0.208120
v -0.310920 -0.485966 0.208120
v -0.306022 -0.464409 0.208120
v -0.306022 -0.464409 -0.212051
v -0.310921 -0.485966 -0.212051
v 0.000000 -0.462862 -0.212050
v -0.016802 -0.500002 -0.212050
v -0.016801 -0.500002 0.208120
v -0.046213 -0.500002 0.208120
v -0.046214 -0.500002 -0.212050
v -0.046213 -0.500002 0.216625
v -0.020445 -0.500002 0.216625
v -0.012429 -0.485966 -0.220555
v -0.020446 -0.500002 -0.220555
v -0.321340 -0.500002 -0.220555
v -0.321341 -0.500002 0.216624
v -0.046214 -0.500002 -0.220555
v -0.321341 -0.485966 0.216624
v -0.238235 -0.450057 0.208120
v 0.000001 -0.486750 0.216625
v -0.238236 -0.450057 -0.212051
v 0.306023 -0.464409 0.208120
v 0.306023 -0.464409 -0.212051
v 0.238237 -0.450057 0.208120
v 0.238236 -0.450057 -0.212051
v 0.046214 -0.500003 -0.212050
v 0.046215 -0.500003 0.208120
v 0.016803 -0.500003 0.208120
v 0.016802 -0.500003 -0.212050
v 0.000001 -0.481442 0.216625
v 0.000000 -0.481442 -0.220555
v 0.310922 -0.485967 -0.212051
v 0.310922 -0.485967 0.208120
v 0.321342 -0.485967 -0.220555
v 0.012430 -0.485967 0.216625
v 0.046215 -0.500003 0.216625
v 0.020447 -0.500003 0.216625
v 0.012429 -0.485967 -0.220555
v 0.020446 -0.500003 -0.220555
v 0.321341 -0.500003 -0.220555
v 0.321343 -0.500003 0.216624
v 0.046214 -0.500003 -0.220555
v 0.321343 -0.485967 0.216624
v 0.000001 -0.486750 0.208120
v 0.000000 -0.486750 -0.212050
v 0.086920 -0.442244 -0.212051
v 0.086920 -0.442244 0.208120
v -0.086847 -0.442244 -0.212050
v -0.086847 -0.442244 0.208120
v -0.043405 -0.447755 -0.212050
v -0.043405 -0.447755 0.208120
v 0.043478 -0.447755 -0.212050
v 0.043478 -0.447755 0.208120
v 0.010224 -0.490836 0.216625
v -0.006214 -0.482857 0.216625
v -0.006214 -0.482857 -0.220555
v -0.008400 -0.490836 0.208120
v -0.008401 -0.490836 -0.212050
v -0.010223 -0.490836 -0.220555
v -0.010222 -0.490836 0.216625
v 0.010223 -0.490836 -0.220555
v 0.008401 -0.490836 -0.212050
v 0.008402 -0.490836 0.208120
v 0.006215 -0.482858 -0.220555
v 0.006215 -0.482858 0.216625
v -0.012429 -0.485966 -0.212050
v 0.000000 -0.481442 -0.212050
v 0.012429 -0.485967 -0.212050
v -0.006214 -0.482857 -0.212050
v 0.006215 -0.482858 -0.212050
v -0.012428 -0.485966 0.208120
v 0.000001 -0.481442 0.208120
v 0.012430 -0.485967 0.208120
v -0.006214 -0.482857 0.208120
v 0.006215 -0.482858 0.208120
vt 0.9657 0.8392
vt 0.7118 0.8392
vt 0.7118 0.8325
vt 0.7118 0.5038
vt 0.7118 0.4971
vt 0.9657 0.4971
vt 0.3957 0.4947
vt 0.3957 0.2612
vt 0.4035 0.2612
vt 0.4035 0.5029
vt 0.6880 0.8392
vt 0.6846 0.8325
vt 0.9870 0.7388
vt 0.9870 0.4971
vt 1.0000 0.4971
vt 1.0000 0.7124
vt 1.0000 0.7326
vt 0.9921 0.0000
vt 0.9921 0.3421
vt 0.9791 0.3421
vt 0.9791 0.0000
vt 0.9699 1.0000
vt 0.9699 0.7583
vt 0.9829 0.7646
vt 0.9829 0.7847
vt 0.9829 1.0000
vt 0.4035 0.2417
vt 0.3957 0.2417
vt 0.3957 0.0082
vt 0.4035 0.0000
vt 0.6846 0.5038
vt 0.0078 0.0082
vt 0.0000 0.0000
vt 0.6575 0.8325
vt 0.6575 0.5038
vt 0.6846 0.5038
vt 0.6846 0.8325
vt 0.6575 0.4971
vt 0.6813 0.4971
vt 0.9699 0.4971
vt 0.9829 0.4971
vt 0.9829 0.7124
vt 0.9829 0.7326
vt 0.9699 0.7388
vt 0.9662 0.0000
vt 0.9791 0.0000
vt 0.9791 0.3421
vt 0.9662 0.3421
vt 0.9870 0.7583
vt 1.0000 0.7646
vt 1.0000 0.7847
vt 1.0000 1.0000
vt 0.9870 1.0000
vt 0.6813 0.8392
vt 0.6575 0.8392
vt 0.0000 0.2612
vt 0.0079 0.2612
vt 0.0078 0.4947
vt 0.0000 0.5029
vt 0.4035 0.8392
vt 0.4035 0.4971
vt 0.6880 0.4971
vt 0.9744 0.7406
vt 0.9706 0.7486
vt 0.9670 0.7437
vt 0.9657 0.7486
vt 0.9670 0.7534
vt 0.9744 0.7566
vt 0.9915 0.7406
vt 0.9878 0.7486
vt 0.9842 0.7437
vt 0.9829 0.7486
vt 0.9842 0.7534
vt 0.9915 0.7566
vt 0.0448 0.8450
vt 0.0356 0.8450
vt 0.0354 0.8383
vt 0.0446 0.8383
vt 0.9662 0.3421
vt 0.9568 0.3421
vt 0.9568 0.3354
vt 0.9646 0.3354
vt 0.9474 0.3421
vt 0.9490 0.3354
vt 0.0448 0.8450
vt 0.0451 0.8383
vt 0.0543 0.8383
vt 0.0541 0.8450
vt 0.0446 0.5095
vt 0.0354 0.5095
vt 0.0356 0.5029
vt 0.0448 0.5029
vt 0.9662 0.0000
vt 0.9646 0.0067
vt 0.9568 0.0067
vt 0.9568 0.0000
vt 0.9490 0.0067
vt 0.9474 0.0000
vt 0.0448 0.5029
vt 0.0541 0.5029
vt 0.0543 0.5095
vt 0.0451 0.5095
vt 0.0000 0.2563
vt 0.0000 0.2514
vt 0.0079 0.2514
vt 0.0079 0.2563
vt 0.0000 0.2466
vt 0.0000 0.2417
vt 0.0079 0.2417
vt 0.0079 0.2466
vt 0.4035 0.2514
vt 0.4035 0.2563
vt 0.3957 0.2563
vt 0.3957 0.2514
vt 0.4035 0.2466
vt 0.3957 0.2466
vt 0.7799 0.0000
vt 0.7799 1.0000
vt 0.7250 1.0000
vt 0.7250 0.0000
vt 0.7174 1.0000
vt 0.6624 1.0000
vt 0.6624 0.0000
vt 0.7174 0.0000
vt 0.1844 1.0000
vt 0.1270 0.9704
vt 0.2220 0.8967
vt 0.4857 0.7931
vt 0.4720 0.8965
vt 0.3770 0.9704
vt 0.2162 0.4330
vt 0.1270 0.2600
vt 0.0594 0.0000
vt 0.0020 0.0296
vt 0.0097 0.0148
vt 0.2357 0.7933
vt 0.0132 0.0000
vt 0.0912 0.5670
vt 0.0556 0.7283
vt 0.0020 0.7400
vt 0.1107 0.2069
vt 0.1347 0.9852
vt 0.0970 0.1035
vt 0.1806 0.2717
vt 0.1382 1.0000
vt 0.3412 0.5670
vt 0.3056 0.7283
vt 0.2520 0.7400
vt 0.2520 0.0296
vt 0.3607 0.2067
vt 0.3882 1.0000
vt 0.3847 0.9852
vt 0.4344 1.0000
vt 0.3470 0.1033
vt 0.4662 0.4330
vt 0.3770 0.2600
vt 0.3094 0.0000
vt 0.2597 0.0148
vt 0.2632 0.0000
vt 0.4306 0.2717
vt 0.6368 0.1563
vt 0.8750 0.1563
vt 0.8750 0.9843
vt 0.6368 0.9843
vt 0.0000 0.1563
vt 0.1250 0.1563
vt 0.1250 0.9843
vt 0.0000 0.9843
vt 1.0000 0.1563
vt 1.0000 0.9843
vt 0.3633 0.1563
vt 0.4317 0.1563
vt 0.4317 0.9843
vt 0.3633 0.9843
vt 0.5000 0.1563
vt 0.5684 0.1563
vt 0.5684 0.9843
vt 0.5000 0.9843
vn -0.5773 -0.5773 -0.5773
vn 0.0000 -0.7071 -0.7071
vn 0.0000 -1.0000 0.0000
vn 0.0000 -0.7071 0.7071
vn -0.5773 -0.5773 0.5773
vn 0.2807 0.9275 0.2469
vn 0.1729 0.7321 0.6588
vn 0.1487 0.6294 0.7627
vn 0.5773 0.5773 0.5773
vn 0.2166 -0.7111 -0.6688
vn 0.4287 -0.9005 -0.0717
vn -0.1487 0.6294 0.7627
vn -0.5773 0.5773 0.5773
vn 0.2166 -0.7111 0.6688
vn -0.5773 0.5773 -0.5773
vn -0.1487 0.6294 -0.7627
vn -0.1729 0.7321 0.6588
vn -0.2807 0.9275 0.2469
vn 0.4287 -0.9005 0.0717
vn -0.2807 0.9275 -0.2469
vn -0.4288 -0.9005 0.0717
vn -0.4288 -0.9005 -0.0717
vn -0.2166 -0.7111 0.6688
vn 0.5773 0.5773 -0.5773
vn 0.5773 -0.5773 -0.5773
vn -0.2166 -0.7111 -0.6688
vn 0.1487 0.6294 -0.7627
vn 0.5773 -0.5773 0.5773
vn 0.1729 0.7321 -0.6588
vn 0.2807 0.9275 -0.2469
vn -0.3503 -0.4967 -0.7941
vn 0.0000 -0.5800 -0.8146
vn 0.2469 0.6893 -0.6811
vn 0.0000 0.7509 -0.6604
vn -0.2468 0.6893 -0.6811
vn 0.3503 -0.4967 -0.7941
vn 0.3503 -0.4967 0.7941
vn 0.0000 -0.5800 0.8146
vn -0.2468 0.6893 0.6811
vn 0.0000 0.7509 0.6604
vn 0.2469 0.6893 0.6811
vn -0.3503 -0.4967 0.7941
vn -0.5696 -0.8195 0.0629
vn 0.0000 -0.9997 0.0237
vn 0.5696 -0.8195 0.0629
vn -0.5696 -0.8195 -0.0629
vn 0.0000 -0.9997 -0.0237
vn 0.5696 -0.8195 -0.0629
vn 0.0000 0.6491 -0.7606
vn 0.2286 0.6383 -0.7350
vn -0.1729 0.7321 -0.6588
vn -0.2286 0.6383 -0.7350
vn 0.2286 0.6383 0.7350
vn 0.0000 0.6491 0.7606
vn -0.2286 0.6383 0.7350
vn -0.5596 0.5679 0.6035
vn -0.5596 0.5679 -0.6035
vn 0.5596 0.5679 -0.6035
vn 0.5596 0.5679 0.6035
vn 0.0002 0.6143 -0.7890
vn 0.1666 0.7098 -0.6844
vn -0.0271 0.7255 0.6876
vn -0.1664 0.7098 0.6844
vn -0.0939 0.7178 -0.6898
vn 0.0271 0.7255 -0.6876
vn 0.0939 0.7178 -0.6898
vn -0.0271 0.7255 -0.6876
vn -0.1664 0.7098 -0.6844
vn -0.0939 0.7178 0.6898
vn 0.0271 0.7255 0.6876
vn 0.0002 0.6143 0.7890
vn 0.1666 0.7098 0.6844
vn 0.0939 0.7178 0.6898
g Cube.002_Cube.001_Cube.002_Cube.001_cover
s 1
f 18/1/1 20/2/2 13/3/3 12/4/3 14/5/4 19/6/5
@ -333,86 +341,86 @@ f 3/22/15 16/23/16 17/24/10 20/25/2 18/26/1
f 1/27/12 74/28/17 5/29/18 21/30/13
f 13/3/3 10/12/11 11/31/19 12/4/3
f 21/30/13 5/29/18 8/32/20 3/33/15
f 29/34/3 30/35/3 31/31/21 32/12/22
f 31/31/21 30/35/3 39/36/4 40/37/23
f 37/38/24 43/39/25 45/40/2 42/41/26 41/42/27
f 43/43/25 37/21/24 46/20/9 44/44/28
f 38/45/8 40/46/23 39/47/4 44/48/28 46/49/9
f 29/34/3 32/12/22 42/50/26 45/51/2
f 41/52/27 71/53/29 35/54/30 37/55/24
f 35/54/30 36/7/6 46/10/9 37/55/24
f 43/56/25 44/57/28 39/36/4 30/35/3 29/34/3 45/51/2
f 15/58/14 14/5/4 12/4/3 11/31/19
f 42/41/26 64/59/31 41/42/27
f 41/42/27 64/59/31 2/60/32 67/61/33
f 67/61/33 2/60/32 34/62/34
f 34/62/34 2/60/32 59/63/35
f 2/60/32 62/64/36 16/23/16 59/63/35
f 16/23/16 62/64/36 17/24/10
f 15/17/14 63/65/37 1/13/12
f 23/66/38 58/67/39 1/13/12 63/65/37
f 58/67/39 23/66/38 33/68/40
f 68/69/41 33/68/40 23/66/38
f 38/45/8 68/69/41 23/66/38 57/70/42
f 57/70/42 40/46/23 38/45/8
f 40/71/23 57/72/42 66/73/43 31/74/21
f 57/44/42 23/75/38 47/76/44 66/77/43
f 47/76/44 23/75/38 63/78/37 60/79/45
f 15/71/14 11/80/19 60/81/45 63/82/37
f 32/83/22 65/84/46 64/85/31 42/86/26
f 64/43/31 65/87/46 48/88/47 2/89/32
f 48/88/47 61/90/48 62/91/36 2/89/32
f 17/86/10 62/92/36 61/93/48 10/94/11
f 67/95/33 34/96/34 70/97/49 73/98/50
f 59/99/35 16/100/16 69/101/51 72/102/52
f 41/52/27 67/95/33 73/98/50 71/53/29
f 34/96/34 59/99/35 72/102/52 70/97/49
f 33/103/40 68/104/41 78/105/53 75/106/54
f 1/27/12 58/107/39 77/108/55 74/28/17
f 68/104/41 38/9/8 76/8/7 78/105/53
f 58/107/39 33/103/40 75/106/54 77/108/55
f 8/32/20 69/101/51 16/100/16 3/33/15
f 10/94/11 61/93/48 60/81/45 11/80/19
f 47/76/44 60/79/45 61/90/48 48/88/47
f 65/87/46 66/77/43 47/76/44 48/88/47
f 31/74/21 66/73/43 65/84/46 32/83/22
f 29/34/3 30/35/3 31/36/21 32/37/22
f 31/36/21 30/35/3 39/38/4 40/39/23
f 37/40/24 43/41/25 45/42/2 42/43/26 41/44/27
f 43/45/25 37/46/24 46/47/9 44/48/28
f 38/49/8 40/50/23 39/51/4 44/52/28 46/53/9
f 29/34/3 32/37/22 42/54/26 45/55/2
f 41/56/27 71/57/29 35/58/30 37/59/24
f 35/58/30 36/7/6 46/10/9 37/59/24
f 43/60/25 44/61/28 39/38/4 30/35/3 29/34/3 45/55/2
f 15/62/14 14/5/4 12/4/3 11/31/19
f 42/43/26 64/63/31 41/44/27
f 41/44/27 64/63/31 2/64/32 67/65/33
f 67/65/33 2/64/32 34/66/34
f 34/66/34 2/64/32 59/67/35
f 2/64/32 62/68/36 16/23/16 59/67/35
f 16/23/16 62/68/36 17/24/10
f 15/17/14 63/69/37 1/13/12
f 23/70/38 58/71/39 1/13/12 63/69/37
f 58/71/39 23/70/38 33/72/40
f 68/73/41 33/72/40 23/70/38
f 38/49/8 68/73/41 23/70/38 57/74/42
f 57/74/42 40/50/23 38/49/8
f 40/75/23 57/76/42 66/77/43 31/78/21
f 57/79/42 23/80/38 47/81/44 66/82/43
f 47/81/44 23/80/38 63/83/37 60/84/45
f 15/85/14 11/86/19 60/87/45 63/88/37
f 32/89/22 65/90/46 64/91/31 42/92/26
f 64/93/31 65/94/46 48/95/47 2/96/32
f 48/95/47 61/97/48 62/98/36 2/96/32
f 17/99/10 62/100/36 61/101/48 10/102/11
f 67/103/33 34/104/34 70/105/49 73/106/50
f 59/107/35 16/108/16 69/109/51 72/110/52
f 41/56/27 67/103/33 73/106/50 71/57/29
f 34/104/34 59/107/35 72/110/52 70/105/49
f 33/111/40 68/112/41 78/113/53 75/114/54
f 1/27/12 58/115/39 77/116/55 74/28/17
f 68/112/41 38/9/8 76/8/7 78/113/53
f 58/115/39 33/111/40 75/114/54 77/116/55
f 8/32/20 69/109/51 16/108/16 3/33/15
f 10/102/11 61/101/48 60/87/45 11/86/19
f 47/81/44 60/84/45 61/97/48 48/95/47
f 65/94/46 66/82/43 47/81/44 48/95/47
f 31/78/21 66/77/43 65/90/46 32/89/22
g Cube.002_Cube.001_Cube.002_Cube.001_edges
f 8/109/20 5/110/18 6/111/56 7/112/57
f 35/113/30 26/114/58 25/115/59 36/116/6
f 9/117/60 69/118/51 53/119/61
f 50/120/62 56/121/63 76/122/7
f 24/123/64 69/118/51 8/124/20
f 9/125/60 71/126/29 73/127/50
f 51/128/65 53/119/61 69/118/51
f 9/125/60 73/127/50 70/129/49
f 28/130/66 26/131/58 35/132/30
f 71/126/29 49/133/67 28/130/66
f 72/134/52 69/118/51 9/117/60
f 71/126/29 55/135/68 49/133/67
f 28/130/66 35/132/30 71/126/29
f 24/123/64 8/124/20 7/136/57
f 69/118/51 24/123/64 51/128/65
f 9/125/60 55/135/68 71/126/29
f 70/137/49 72/134/52 9/117/60
f 22/138/69 6/139/56 5/140/18
f 74/141/17 52/142/70 22/138/69
f 75/143/54 78/144/53 4/145/71
f 74/141/17 54/146/72 52/142/70
f 22/138/69 5/140/18 74/141/17
f 27/147/73 76/122/7 36/148/6
f 4/149/71 74/141/17 77/150/55
f 27/147/73 50/120/62 76/122/7
f 4/149/71 77/150/55 75/151/54
f 4/145/71 78/144/53 76/122/7
f 4/149/71 54/146/72 74/141/17
f 27/147/73 36/148/6 25/152/59
f 56/121/63 4/145/71 76/122/7
f 8/117/20 5/118/18 6/119/56 7/120/57
f 35/121/30 26/122/58 25/123/59 36/124/6
f 9/125/60 69/126/51 53/127/61
f 50/128/62 56/129/63 76/130/7
f 24/131/64 69/126/51 8/132/20
f 9/133/60 71/134/29 73/135/50
f 51/136/65 53/127/61 69/126/51
f 9/133/60 73/135/50 70/137/49
f 28/138/66 26/139/58 35/140/30
f 71/134/29 49/141/67 28/138/66
f 72/142/52 69/126/51 9/125/60
f 71/134/29 55/143/68 49/141/67
f 28/138/66 35/140/30 71/134/29
f 24/131/64 8/132/20 7/144/57
f 69/126/51 24/131/64 51/136/65
f 9/133/60 55/143/68 71/134/29
f 70/145/49 72/142/52 9/125/60
f 22/146/69 6/147/56 5/148/18
f 74/149/17 52/150/70 22/146/69
f 75/151/54 78/152/53 4/153/71
f 74/149/17 54/154/72 52/150/70
f 22/146/69 5/148/18 74/149/17
f 27/155/73 76/130/7 36/156/6
f 4/157/71 74/149/17 77/158/55
f 27/155/73 50/128/62 76/130/7
f 4/157/71 77/158/55 75/159/54
f 4/153/71 78/152/53 76/130/7
f 4/157/71 54/154/72 74/149/17
f 27/155/73 36/156/6 25/160/59
f 56/129/63 4/153/71 76/130/7
g Cube.002_Cube.001_Cube.002_Cube.001_pages
f 50/153/62 27/154/73 28/155/66 49/156/67
f 6/157/56 22/158/69 24/159/64 7/160/57
f 27/154/73 25/161/59 26/162/58 28/155/66
f 52/163/70 54/164/72 53/165/61 51/166/65
f 22/158/69 52/163/70 51/166/65 24/159/64
f 4/167/71 56/168/63 55/169/68 9/170/60
f 54/164/72 4/167/71 9/170/60 53/165/61
f 56/168/63 50/153/62 49/156/67 55/169/68
f 50/161/62 27/162/73 28/163/66 49/164/67
f 6/165/56 22/166/69 24/167/64 7/168/57
f 27/162/73 25/169/59 26/170/58 28/163/66
f 52/171/70 54/172/72 53/173/61 51/174/65
f 22/166/69 52/171/70 51/174/65 24/167/64
f 4/175/71 56/176/63 55/177/68 9/178/60
f 54/172/72 4/175/71 9/178/60 53/173/61
f 56/176/63 50/161/62 49/164/67 55/177/68

View File

@ -0,0 +1,202 @@
# Blender v2.78 (sub 0) OBJ File: ''
# www.blender.org
o Cube_Cube.001
v 0.500000 -0.500000 -0.500000
v 0.500000 0.500000 -0.500000
v 0.500000 -0.500000 0.500000
v 0.500000 0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 0.500000 -0.500000
v -0.500000 -0.500000 0.500000
v -0.500000 0.500000 0.500000
v 0.437500 -0.437500 -0.437500
v 0.437500 0.437500 -0.437500
v 0.437500 -0.437500 0.437500
v 0.437500 0.437500 0.437500
v -0.437500 -0.437500 -0.437500
v -0.437500 0.437500 -0.437500
v -0.437500 -0.437500 0.437500
v -0.437500 0.437500 0.437500
v -0.500000 -0.437500 -0.437500
v -0.500000 0.437500 -0.437500
v -0.500000 -0.437500 0.437500
v -0.500000 0.437500 0.437500
v 0.500000 -0.437500 -0.437500
v 0.500000 0.437500 -0.437500
v 0.500000 -0.437500 0.437500
v 0.500000 0.437500 0.437500
v 0.437500 -0.437500 -0.500000
v 0.437500 0.437500 -0.500000
v -0.437500 -0.437500 -0.500000
v -0.437500 0.437500 -0.500000
v 0.437500 -0.437500 0.500000
v 0.437500 0.437500 0.500000
v -0.437500 -0.437500 0.500000
v -0.437500 0.437500 0.500000
v 0.437500 0.500000 -0.437500
v 0.437500 0.500000 0.437500
v -0.437500 0.500000 -0.437500
v -0.437500 0.500000 0.437500
v 0.437500 -0.500000 -0.437500
v 0.437500 -0.500000 0.437500
v -0.437500 -0.500000 -0.437500
v -0.437500 -0.500000 0.437500
vt 0.0625 0.0000
vt 0.9375 0.0000
vt 0.9375 0.0625
vt 0.0625 0.0625
vt -0.0000 0.9375
vt -0.0000 0.0625
vt 0.0625 0.9375
vt -0.0000 0.0625
vt -0.0000 0.9375
vt -0.0000 0.9375
vt -0.0000 0.0625
vt 0.0625 0.0625
vt 0.0625 0.9375
vt -0.0000 0.9375
vt 0.0625 0.9375
vt 0.0625 0.0625
vt -0.0000 0.0625
vt 0.9375 0.0000
vt 0.0625 0.0000
vt 0.9375 0.0625
vt 0.0625 0.9375
vt 0.0625 0.0625
vt -0.0000 0.0625
vt -0.0000 0.9375
vt 1.0000 0.9375
vt 1.0000 0.0625
vt 0.9375 0.9375
vt 1.0000 0.9375
vt 0.9375 0.9375
vt 1.0000 0.9375
vt 0.9375 0.9375
vt 0.9375 0.0625
vt 1.0000 0.0625
vt 1.0000 0.0625
vt 1.0000 0.9375
vt 1.0000 0.0625
vt 0.9375 1.0000
vt 0.0625 1.0000
vt 0.9375 0.9375
vt 0.9375 0.0625
vt 1.0000 0.0625
vt 1.0000 0.9375
vt 0.0625 1.0000
vt 0.9375 1.0000
vt 0.0625 0.0000
vt 0.9375 0.0000
vt 0.0625 0.0000
vt 0.9375 0.0000
vt 0.0625 0.0000
vt 0.9375 0.0000
vt 0.0625 1.0000
vt 0.9375 1.0000
vt 0.0625 1.0000
vt 0.9375 1.0000
vt 0.0625 1.0000
vt 0.9375 1.0000
vt -0.0000 0.0000
vt 1.0000 0.0000
vt 0.9375 0.0625
vt 0.0625 0.0625
vt -0.0000 1.0000
vt 0.0625 0.9375
vt 1.0000 1.0000
vt 0.9375 0.9375
vt -0.0000 1.0000
vt 0.0625 0.9375
vt 0.9375 0.9375
vt 1.0000 0.0000
vt 0.9375 0.0625
vt 0.0625 0.0625
vt -0.0000 0.0000
vt 1.0000 1.0000
vt 1.0000 0.0000
vt 0.9375 0.0625
vt 0.9375 0.9375
vt -0.0000 0.0000
vt 0.0625 0.0625
vt -0.0000 1.0000
vt 0.0625 0.9375
vt -0.0000 0.0000
vt 0.0625 0.9375
vt 0.0625 0.0625
vt 0.9375 0.9375
vt 0.9375 0.0625
vt 1.0000 0.0000
vt 0.9375 0.0625
vt 0.9375 0.9375
vt 1.0000 1.0000
vt 0.0625 0.9375
vt -0.0000 1.0000
vt 0.0625 0.0625
vt 0.0625 0.0625
vt 0.0625 0.9375
vt 0.9375 0.9375
vt 1.0000 1.0000
vt 0.9375 0.0625
vn 0.0000 1.0000 0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 -1.0000 0.0000
vn 1.0000 0.0000 0.0000
g Cube_Cube.001_frame
s off
f 25/1/1 27/2/1 13/3/1 9/4/1
f 26/5/2 25/6/2 9/4/2 10/7/2
f 21/8/3 22/9/3 10/7/3 9/4/3
f 24/10/4 23/11/4 11/12/4 12/13/4
f 23/14/1 21/8/1 9/4/1 11/15/1
f 12/13/5 10/16/5 22/17/5 24/10/5
f 28/18/5 26/19/5 10/16/5 14/20/5
f 14/21/6 13/22/6 27/23/6 28/24/6
f 18/25/3 17/26/3 13/3/3 14/27/3
f 17/26/1 19/28/1 15/29/1 13/3/1
f 20/30/4 16/31/4 15/32/4 19/33/4
f 20/30/5 18/34/5 14/20/5 16/31/5
f 16/31/6 32/35/6 31/36/6 15/32/6
f 31/37/1 29/38/1 11/15/1 15/29/1
f 12/39/2 11/40/2 29/41/2 30/42/2
f 30/43/5 32/44/5 16/31/5 12/13/5
f 15/32/4 11/12/4 38/45/4 40/46/4
f 13/22/6 15/32/6 40/46/6 39/47/6
f 9/4/3 13/3/3 39/48/3 37/49/3
f 11/40/2 9/4/2 37/49/2 38/50/2
f 16/31/6 14/21/6 35/51/6 36/52/6
f 12/13/4 16/31/4 36/52/4 34/53/4
f 10/7/2 12/39/2 34/54/2 33/55/2
f 14/27/3 10/7/3 33/55/3 35/56/3
f 2/57/1 6/58/1 35/59/1 33/60/1
f 4/61/1 2/57/1 33/60/1 34/62/1
f 8/63/1 4/61/1 34/62/1 36/64/1
f 6/58/1 8/63/1 36/64/1 35/59/1
f 6/65/2 18/66/2 20/67/2 8/63/2
f 7/68/2 8/63/2 20/67/2 19/69/2
f 7/68/2 19/69/2 17/70/2 5/71/2
f 5/71/2 17/70/2 18/66/2 6/65/2
f 7/72/5 5/73/5 39/74/5 40/75/5
f 5/73/5 1/76/5 37/77/5 39/74/5
f 1/76/5 3/78/5 38/79/5 37/77/5
f 3/78/5 7/72/5 40/75/5 38/79/5
f 3/80/3 4/61/3 30/81/3 29/82/3
f 8/63/3 32/83/3 30/81/3 4/61/3
f 7/68/3 31/84/3 32/83/3 8/63/3
f 3/80/3 29/82/3 31/84/3 7/68/3
f 3/85/6 23/86/6 24/87/6 4/88/6
f 4/88/6 24/87/6 22/89/6 2/90/6
f 2/90/6 22/89/6 21/91/6 1/76/6
f 1/76/6 21/91/6 23/86/6 3/85/6
f 2/90/4 1/76/4 25/92/4 26/93/4
f 2/90/4 26/93/4 28/94/4 6/95/4
f 5/73/4 6/95/4 28/94/4 27/96/4
f 5/73/4 27/96/4 25/92/4 1/76/4
g Cube_Cube.001_glass
f 9/4/6 10/7/6 12/39/6 11/40/6
f 11/12/3 12/13/3 16/31/3 15/32/3
f 15/32/2 16/31/2 14/21/2 13/22/2
f 13/3/4 14/27/4 10/7/4 9/4/4
f 11/15/5 15/29/5 13/3/5 9/4/5
f 16/31/1 12/13/1 10/16/1 14/20/1

View File

@ -32,13 +32,17 @@ homedecor.register("shutter", {
description = S("Wooden Shutter"),
inventory_image = inv,
wield_image = inv,
paramtype2 = "wallmounted",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
ud_replacement_node = "homedecor:shutter_colored",
groups = { snappy = 3, ud_param2_colorable = 1 },
sounds = default.node_sound_wood_defaults(),
selection_box = shutter_cbox,
node_box = shutter_cbox,
after_place_node = unifieddyes.fix_rotation,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end,
after_dig_node = unifieddyes.after_dig_node
})
@ -54,7 +58,10 @@ homedecor.register("shutter_colored", {
sounds = default.node_sound_wood_defaults(),
selection_box = shutter_cbox,
node_box = shutter_cbox,
after_place_node = unifieddyes.fix_rotation,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end,
after_dig_node = unifieddyes.after_dig_node,
drop = "homedecor:shutter"
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 B

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 B

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 B

After

Width:  |  Height:  |  Size: 93 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 B

After

Width:  |  Height:  |  Size: 94 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 B

After

Width:  |  Height:  |  Size: 95 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 B

After

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 B

After

Width:  |  Height:  |  Size: 93 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 B

View File

@ -113,7 +113,10 @@ minetest.register_node("homedecor:curtain_closed", {
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = { type = "wallmounted" },
after_dig_node = unifieddyes.after_dig_node,
after_place_node = unifieddyes.fix_rotation,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local topnode = minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z})
if string.find(topnode.name, "homedecor:curtainrod") then
@ -126,7 +129,7 @@ minetest.register_node("homedecor:curtain_closed", {
})
minetest.register_node("homedecor:curtain_open", {
description = S("Curtains"),
description = S("Curtains (open)"),
tiles = { "homedecor_curtain_open.png" },
inventory_image = "homedecor_curtain_open.png",
drawtype = 'signlike',
@ -139,7 +142,10 @@ minetest.register_node("homedecor:curtain_open", {
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = { type = "wallmounted" },
after_dig_node = unifieddyes.after_dig_node,
after_place_node = unifieddyes.fix_rotation,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local topnode = minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z})
if string.find(topnode.name, "homedecor:curtainrod") then

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1576
homedecor_i18n/locale/ru.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7,6 +7,8 @@ cd "$(dirname "${BASH_SOURCE[0]}")/..";
# Extract translatable strings.
xgettext --from-code=UTF-8 \
--language=Lua \
--sort-by-file \
--keyword=S \
--keyword=NS:1,2 \
--keyword=N_ \

View File

@ -92,6 +92,19 @@ minetest.register_node("inbox:empty", {
end
end
end,
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
local owner = meta:get_string("owner")
if player:get_player_name() == owner or
minetest.check_player_privs(player, "protection_bypass") and
clicker:get_player_control().aux1 then
return stack:get_count()
end
return 0
end,
allow_metadata_inventory_move = function(pos)
return 0
end,
})
function inbox.get_inbox_formspec(pos)

View File

@ -8,7 +8,11 @@ minetest.register_node("lavalamp:lavalamp", {
drawtype = "mesh",
mesh = "lavalamp.obj",
tiles = {
{ name = "lavalamp_metal.png", color = 0xffffffff},
{ name = "lavalamp_metal.png", color = "white" },
{ name = "lavalamp_lamp_liquid.png", color = "white" },
},
overlay_tiles = {
"",
{
name="lavalamp_lamp_anim.png",
animation={
@ -19,6 +23,7 @@ minetest.register_node("lavalamp:lavalamp", {
},
},
},
use_texture_alpha = true,
inventory_image = "lavalamp_lamp_inv.png",
paramtype = "light",
paramtype2 = "color",
@ -33,6 +38,8 @@ minetest.register_node("lavalamp:lavalamp", {
},
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, ud_param2_colorable = 1},
sounds = default.node_sound_glass_defaults(),
on_construct = unifieddyes.on_construct,
after_place_node = unifieddyes.recolor_on_place,
after_dig_node = unifieddyes.after_dig_node,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "lavalamp:lavalamp_off"
@ -62,6 +69,8 @@ minetest.register_node("lavalamp:lavalamp_off", {
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, not_in_creative_inventory=1},
sounds = default.node_sound_glass_defaults(),
drop = "lavalamp:lavalamp",
on_construct = unifieddyes.on_construct,
after_place_node = unifieddyes.recolor_on_place,
after_dig_node = unifieddyes.after_dig_node,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "lavalamp:lavalamp"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

View File

@ -23,7 +23,10 @@ minetest.register_node("lrfurn:armchair", {
groups = {snappy=3, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(),
node_box = armchair_cbox,
after_place_node = unifieddyes.fix_rotation_nsew,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end,
after_dig_node = unifieddyes.after_dig_node,
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
@ -105,6 +108,6 @@ minetest.register_lbm({
end
})
if minetest.setting_get("log_mods") then
if minetest.settings:get("log_mods") then
minetest.log("action", "[lrfurn/armchairs] "..S("Loaded!"))
end

View File

@ -65,6 +65,6 @@ minetest.register_craft({
}
})
if minetest.setting_get("log_mods") then
if minetest.settings:get("log_mods") then
minetest.log("action", "[lrfurn/coffeetable] "..S("Loaded!"))
end

View File

@ -48,6 +48,6 @@ minetest.register_craft({
}
})
if minetest.setting_get("log_mods") then
if minetest.settings:get("log_mods") then
minetest.log("action", "[lrfurn/endtable] "..S("Loaded!"))
end

View File

@ -38,9 +38,9 @@ function lrfurn.check_right(pos, fdir, long, placer)
return false
elseif minetest.is_protected(pos2, placer:get_player_name()) then
if not long then
minetest.chat_send_player(placer:get_player_name(), "Someone else owns the spot where other end goes!")
minetest.chat_send_player(placer:get_player_name(), S("Someone else owns the spot where other end goes!"))
else
minetest.chat_send_player(placer:get_player_name(), "Someone else owns the spot where the middle or far end goes!")
minetest.chat_send_player(placer:get_player_name(), S("Someone else owns the spot where the middle or far end goes!"))
end
return false
end
@ -50,7 +50,7 @@ function lrfurn.check_right(pos, fdir, long, placer)
if node3 and node3.name ~= "air" then
return false
elseif minetest.is_protected(pos3, placer:get_player_name()) then
minetest.chat_send_player(placer:get_player_name(), "Someone else owns the spot where the other end goes!")
minetest.chat_send_player(placer:get_player_name(), S("Someone else owns the spot where the other end goes!"))
return false
end
end

View File

@ -26,6 +26,7 @@ minetest.register_node("lrfurn:longsofa", {
on_rotate = screwdriver.disallow,
after_place_node = function(pos, placer, itemstack, pointed_thing)
lrfurn.fix_sofa_rotation_nsew(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
local playername = placer:get_player_name()
if minetest.is_protected(pos, placer:get_player_name()) then return true end
@ -121,6 +122,6 @@ minetest.register_lbm({
end
})
if minetest.setting_get("log_mods") then
if minetest.settings:get("log_mods") then
minetest.log("action", "[lrfurn/longsofas] "..S("Loaded!"))
end

View File

@ -26,6 +26,7 @@ minetest.register_node("lrfurn:sofa", {
on_rotate = screwdriver.disallow,
after_place_node = function(pos, placer, itemstack, pointed_thing)
lrfurn.fix_sofa_rotation_nsew(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
local playername = placer:get_player_name()
if minetest.is_protected(pos, placer:get_player_name()) then return true end
@ -121,6 +122,6 @@ minetest.register_lbm({
end
})
if minetest.setting_get("log_mods") then
if minetest.settings:get("log_mods") then
minetest.log("action", "[lrfurn/sofas] "..S("Loaded!"))
end