1
0
mirror of https://github.com/mt-mods/homedecor_modpack.git synced 2025-06-29 21:31:02 +02:00

Compare commits

...

114 Commits

Author SHA1 Message Date
75eb750e0a remove errant core file 2017-06-21 04:50:41 -04:00
e08e262377 Disable sleeping in beds (again) 2017-06-19 10:45:10 -04:00
b22a11f617 use texture overlays on lava lamps
(water is now blue like it used to be)
2017-06-17 19:32:14 -04:00
9427967784 Make the white glowlight overlays more subtle
(they're too bright against the darker colors e.g. green)
2017-06-17 19:09:37 -04:00
8658cc27fc use static hardware coloring for books,
use soft overlays for cover trim,
2017-06-16 18:07:41 -04:00
752cb473a0 fix book models
(get rid of redundant overlay polys)
2017-06-16 17:43:23 -04:00
9e0d558d54 use soft overlays for bathroom tiles instead of the two-layer mesh node 2017-06-16 16:14:02 -04:00
3ea86f5c3f use soft overlays to re-create the subtle white glow that glowlights used to have
before param2 coloring went in.
2017-06-16 16:01:22 -04:00
d05d03d5d9 Re-enable sleeping in beds 2017-06-16 14:39:20 -04:00
55e2b03a50 missed an alias for open books 2017-06-16 13:35:37 -04:00
78fcbd04db 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-15 15:23:21 -04:00
b50b7423b8 use mesh node for cubical plasma lamp 2017-06-15 13:42:44 -04:00
c741642057 fix wrongly-colored plasma ball base 2017-06-15 13:11:01 -04:00
5c52111bec Merge pull request #366 from tjnenrtn/verify_inbox_owner
Verify inbox owner when taking items
2017-05-25 07:11:29 -04:00
503c05a09e verify inbox owner when taking items 2017-05-24 23:57:42 -04:00
ab94f9dc6a Merge pull request #364 from AntumDeluge/settings
Replace deprecated methods
2017-05-18 05:34:45 -04:00
4d6f0c07c2 Replace deprecated methods:
- 'setting_get' with 'settings:get'
- 'setting_getbool' with 'settings:get_bool'
2017-05-13 00:15:26 -07:00
5fb16c4e33 don't crash if placing bed on top of bed when not in auto-color mode. 2017-03-31 12:59:26 -04:00
b37e6ade7a 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-03-18 05:51:46 -04:00
c79f14bd89 use unified dyes on_construct handler
to set 256-color palette meta key on place
for those nodes that use it
2017-03-14 02:13:17 -04:00
e2a04b52b9 don't reference lrfurn chair colors in homedecor chair LBM
use a local copy instead
2017-03-11 21:21:17 -05:00
5dde3896f3 Merge pull request #360 from Thomas--S/patch-1
Make Wrought Iron Fence 2 recipe more generous
2017-03-11 14:59:49 -05:00
763bcb2e95 Make Wrought Iron Fence 2 recipe more generous
And remove double craft definition
2017-03-11 19:39:16 +01:00
2d0363f3ac add clawfoot tubs
(one with brass handles, one chrome)
2017-02-27 20:16:22 -05:00
0f1b8418a1 lighting: actually get meta before trying to use it :) 2017-02-27 17:02:20 -05:00
f6701bd9cd Merge pull request #359 from frodon1/server_crash
Fix calls to check_player_privs with player name instead of player userdata
2017-02-27 16:54:56 -05:00
d18bee7fa0 Fix calls to check_player_privs with player name instead of player userdata
Fixes #357
2017-02-27 21:56:16 +01:00
c05378f20f require white dye for "light" tiles recipe 2017-02-27 13:51:51 -05:00
d61a990fc9 fix broken bathroom tiles recipes 2017-02-27 13:47:21 -05:00
af41f549a7 fix missing tar alias
(if moreblocks is installed)
2017-02-27 11:27:57 -05:00
c1eda2246a convert lavalamps to UD extended palette 2017-02-25 02:11:47 -05:00
0de4732f43 set meta "ext" flag when converting old nodes 2017-02-25 01:02:51 -05:00
bc9192a847 remove a debug print 2017-02-24 21:57:13 -05:00
1ef6e9b69f do the same for the old static->param2 LBM 2017-02-24 21:27:22 -05:00
efbc491245 use new Unified Dyes "extended" palette
for bathroom tiles, table lamps, and standing lamps
requires unified dyes commit d2819353 or newer
2017-02-24 20:14:21 -05:00
8e6fa4cdff actually get some benefit from the consumed beer :P 2017-02-24 09:51:46 -05:00
2c921c03cd HUEG BOX 2017-02-24 03:05:01 -03:00
43f7056142 building_blocks: if moreblocks is installed, un-register the tar therein
and replace it with the building_blocks version.  Depends on moreblocks
pull request #70
2017-02-23 11:13:48 -05:00
f6173b036c Remove dead code. 2017-02-22 22:49:03 -03:00
8d9ea61b13 Add new used globals to .luacheckrc. 2017-02-22 22:48:45 -03:00
f7ccf20410 fix rotation of top/bottom textures of open gates 2017-02-22 18:55:05 -05:00
0ff3013895 add white and plain wood "half doors" (registred as gates) 2017-02-22 18:51:07 -05:00
f4144817e2 fix a similar crash possibility in itemframes:frame 2017-02-22 17:48:11 -05:00
0eee5f4959 it's possible for the player to be nil
in can_dig (e.g. if it's a technic quarry or something)
2017-02-22 17:28:48 -05:00
e8981367d6 when consuming beer, return the empty glass
(drop the glass on the ground, if necessary)
2017-02-22 17:28:13 -05:00
2c034ebba0 reduce visual scale of sofas 2017-02-22 16:48:38 -05:00
06342cbd86 make sofas and coffee table place with long axis left-to-right
(e.g. front of sofa faces you)
2017-02-22 16:43:39 -05:00
f32fdad4ff reduce README to just a stub (use the forum thread instead) 2017-02-22 14:59:54 -05:00
3ea7d5d84e don't deduct sofas from inventory in creative mode 2017-02-22 14:57:52 -05:00
cf44a85684 increase yield of tar recipes (2 -> 4) 2017-02-22 13:44:45 -05:00
96d0084109 plain wooden kitchen chair is not supposed to be colorable 2017-02-21 11:28:43 -05:00
f09481c3f0 switch over all punch-operated objects
to use on_rightclick instead, for consistency with other parts of minetest,
minetest_game, etc.
2017-02-20 18:30:59 -05:00
8ea285e683 fix rotation of sofas.... properly. :P 2017-02-20 16:39:44 -05:00
16ee0417e8 more tweaks to README 2017-02-20 12:13:52 -05:00
09078726da fix signs_lib comment in readme 2017-02-20 02:26:17 -05:00
18d2e492af use unified dyes' on_rotate handler for some nodes 2017-02-18 13:01:49 -05:00
6c0dd2d31a use unified dyes' rotation correction functions 2017-02-17 23:07:25 -05:00
e9477dd45d don't run LBM at every load 2017-02-16 16:59:19 -05:00
634b89c4c6 Fix missing warnings. 2017-02-16 02:11:22 -03:00
2df6dbcad9 Fix warnings issued by luacheck. 2017-02-15 23:53:52 -03:00
c8fa17801b Translate missing string. 2017-02-12 04:08:31 -03:00
8547b9b498 Update catalogs. 2017-02-11 04:30:13 -03:00
9e2ebe373a Add missing translations. 2017-02-11 04:29:37 -03:00
dafc731078 fix crash from bad "pink" translation reference 2017-02-09 09:44:44 -05:00
7d3b2f921e perform the after-place-fix-rotation at the end of on_place 2017-02-07 00:17:06 -05:00
f29e2fc698 remove debug prints 2017-02-06 09:34:21 -05:00
a599b041d4 convert books to param2 colorization
requires unified dyes commit b0ccff16 or later
2017-02-06 09:31:31 -05:00
846fe60be7 fix wrong texture ref on "medium" tiles 2017-02-06 07:54:40 -05:00
51341671c7 remove debug print 2017-02-06 07:49:57 -05:00
b3538e3941 convert bathroom tiles to param2 color
side effect:

I added a third shade of the formerly-white checker background
that alternates with the colored overlay.  The colored overlay
follows the standard full Unified Dyes palette.
2017-02-06 07:40:46 -05:00
a493933105 unified dyes uses on_use now, instead of on_rightclick 2017-02-04 19:41:36 -05:00
13059eb3a2 fix table recipe 2017-02-04 13:41:21 -05:00
36dc31416e fix bed recipe 2017-02-03 14:21:26 -05:00
fe92fdc373 Minor fixes to inbox.
* Don't trigger global variable warning.
* Change form name to avoid possible bugs in the future.
* Actually (opt-)depend on screwdriver mod.
2017-02-03 00:27:02 -03:00
2ce071ec16 fix crash in stack_sideways (typo) 2017-02-02 10:25:29 -05:00
5f264bc484 local-ize a variable 2017-02-01 11:55:17 -05:00
cad8a378c3 fix crash 2017-02-01 11:51:12 -05:00
1fabeb3975 rename and re-decribe desk lamp LBM 2017-02-01 08:50:03 -05:00
c683874904 revised crafting recipe for desk lamp 2017-01-31 19:08:21 -05:00
5dd5d3a14b convert desk lamps to param2 colorization 2017-01-31 19:01:47 -05:00
3969f1a198 disable sleeping due to crashing inside minetest_game 2017-01-31 11:53:40 -05:00
7623b39a33 fix crash in door placement (copy&paste error) 2017-01-31 11:52:11 -05:00
f6aa12aef9 convert beds to param2 colorization
as a side effect, this also fixes the bug where you couldn't
stack beds to form "bunk" beds.

Place a bed, right-click it with dye to color it.

Place two beds side by side and they'll form a king-size bed, which
you can right right-click with dye to color.

Place a regular bed, then right-click it while wielding another
regular bed (i.e. as if you were trying to place it) and, if there
is room above the first bed, the second will be placed on top and
the bedposts on the bottom one will extend to reach it.  Color
either of the two by right-clicking with dye.

Shift-right-click forces placement of a regular bed without trying
to stack it into bunks.

Right-click while NOT wielding a bed or dye will attempt to let you
sleep (via default beds code).
2017-01-30 23:22:47 -05:00
70ba7db599 convert shutters to param2 colorization
craft and place an oak shutter first, then right-click it with
dye to color it.  dig to get back the oak + dye.
2017-01-30 20:43:40 -05:00
1ec16b5b53 add paramtype="light" to curtains 2017-01-30 19:59:35 -05:00
1d41b5ee18 remove old paper-based table lamp recipes, fix broken ones,
added recipe that uses cottages:wool, to complement the one that uses
default white wool.
2017-01-30 19:59:35 -05:00
dd0e26d95b use param2 colorization for homedecor kitchen chairs and armchairs
Note that the all-wood kitchen chair cannot be colored.
2017-01-30 19:59:35 -05:00
ac9927d035 I18N fixes.
* Make xgettext not output line numbers
* Remove line numbers from existing catalogs.
* Re-add missing localizations.
2017-01-30 21:40:42 -03:00
6cadc7cf26 convert lrfurn to use param2 colorization
To maximize the palette, this uses the colorwallmounted param2 style,
which necessitated modifying the models to make wallmounted look like
normal facedir.  This means couches and chairs can now only ever be
placed upright, facing one of N/S/E/W like a couch or chair normally
would, but since the screwdriver was already disabled, it was basically
impossible to rotate them to any other orientation anyway.

Since this is colorwallmounted, it uses the 32-color abridged Unified Dyes
palette.
2017-01-30 17:10:01 -05:00
3e585ec482 Add a few missing translations. 2017-01-29 23:49:09 -03:00
c806807171 Update translations. 2017-01-29 21:57:37 -03:00
27e1175fb0 Add missing translations. 2017-01-29 21:57:15 -03:00
dc7b60c11f Split I18N stuff into its own submod. 2017-01-29 21:51:07 -03:00
010c07f23a Update pt.po 2017-01-29 14:17:00 -03:00
cb48bfec98 Convert old translations to new format. 2017-01-29 14:17:00 -03:00
4ae16c294e always pass pointed_thing along to on_rightclick 2017-01-29 12:15:14 -05:00
e97cefa94c homedecor depends on unifieddyes 2017-01-29 11:48:06 -05:00
f96f8ac86b lavalamp depends on unifieddyes 2017-01-29 11:44:47 -05:00
0e68696566 remove debug prints
localized a misc. variable
2017-01-29 04:36:39 -05:00
59ae86ec0f convert lavalamps to use param2 coloring
Side effect:  Now all of Unified Dyes' colors can be applied.
2017-01-29 04:32:26 -05:00
89e3353c5b more contrast on glowlight slab top 2017-01-29 03:53:20 -05:00
722c1c6f89 fix wrong nodenames in on_rightclick replace code 2017-01-29 03:50:22 -05:00
175724d53c add a function to correct for broken placement rotation
for wallmounted nodes (engine or _game bug), and put it
to use.
2017-01-29 03:45:58 -05:00
79e501394a fix missing 6dfacedir -> wallmounted
in LBM code for glowlights
2017-01-29 03:31:02 -05:00
800d9017dd convert glowlights, table lamps, and standing lamps
to use param2-base coloring.

Reworked crafting as needed to account for the node names.
2017-01-29 01:21:51 -05:00
1ce7d2b24d removed obsolete glowlight ABMs 2017-01-28 22:11:18 -05:00
428729a43d fix curtain recipes
add support for cottages:wool therein
2017-01-28 22:02:37 -05:00
4ef2f83f07 remove some debug statements 2017-01-28 21:57:48 -05:00
b9307f11ad Convert curtains to param2 coloring. 2017-01-28 21:51:29 -05:00
d35ebe8c00 fix colores of white and black sofas 2017-01-26 09:44:00 -05:00
dc903b16c8 fixed a few missed "black metal" -> static color lines 2017-01-25 17:53:45 -05:00
4598cdca56 fix z-fighting on window shutters 2017-01-25 05:51:59 -05:00
81db7f2c00 fix water in "open toilet" model
(flipped normals)
2017-01-25 05:47:02 -05:00
73545c89af Use texture colorization where possible
Uses "color = <foo>" in the tile image def instead
of compositing with ^[colorize or ^[brighten.  Saves RAM.
2017-01-25 04:22:28 -05:00
175 changed files with 37297 additions and 8343 deletions

View File

@ -15,6 +15,8 @@ read_globals = {
"beds", "beds",
"technic", "technic",
"mesecon", "mesecon",
"unifieddyes",
"creative",
} }
globals = { globals = {

65
README
View File

@ -1,61 +1,8 @@
This is what I consider to be a fairly feature-filled home decor This is what I consider to be a fairly feature-filled home decor modpack.
modpack. As such, it comes in multiple parts: See the forum thread at
https://forum.minetest.net/viewtopic.php?f=11&t=2041 for details about
this modpack.
* The actual homedecor mod, which supplies a bunch of stuff found in Dependencies: unifieddyes and a Minetest engine build newer than 2017-01-23.
most homes (like flower pots, home electronics, brass and wrought-iron
tables, and a bunch of other things).
* A "3d extras" mod, which supplies things that re-define something in Recommends: signs_lib, windmill, moreblocks, unified_inventory.
some other mod (or in the default game) so that those objects become
fully 3d (instead of a flat cube), as well as things which are directly
related. This mod, for example, provides 3d bookshelves and their empty
and half-depth "open frame" counterparts.
* A signs library forked from the one that thexyz and PilzAdam first
made, which produces visible text on signs (and which has been extended
to put signs on fences, including the brass and wrought iron ones here
in homedecor).
* Sdzen's building_blocks mod, which is here to supply not only a few
blocks to build with, obviously, :-) but also to supply a number of
materials to craft other things in Homedecor with.
All items can be accessed either by crafting various other items
together, or with the usual /give commands. To get a list of the actual
node names, just go into the homedecor/ folder and run the listnodes.sh
Bash script. Note that a few of the listed nodes are kinda useless by
themselves (like the various parts of the folding doors).
All of the images used for the recipes in the forum post tracking this
mod are included in the crafting-guide/ folder.
Most stuff can be made from materials found through a game world. Some
stuff can only be crafted by using materials from another mod (look for
the orange highlights). Currently, this mod can use materials from
moreores, mesecons, wool, and unifieddyes if present. You can still use
the usual /give commands to get the items that depend on these mods if
you don't use them installed.
This mod is still a work-in-progress, but should be complete enough not
to irritate anyone. :-) Namely, many items can be used as fuel but the
burn times need tuning and I need to tune the cook time and fuel usage
on the four smelted items.
Much of the code (especially for the doors) plus the bucket were taken
from the files which come with Minetest and altered to suit. Many
thanks to Jeija for coming up with an elegant cylinder using nodeboxes;
see his 'irregular' mods). His code is used herein (you can guess where
:-) ).
Dependencies: none (just the game's default stuff)
Recommends: buckets, flowers, unifieddyes, junglegrass, moreores,
mesecons, wool
Skin credits:
Mammu by hansuke123
http://minetest.fensta.bplaced.net/#name=Mammu
BrightGirl by Malarif
http://minetest.fensta.bplaced.net/#name=BrightGirl

View File

@ -1,2 +1,3 @@
default default
homedecor_i18n
moreblocks? moreblocks?

View File

@ -1,6 +1,9 @@
local S = homedecor_i18n.gettext
minetest.register_node("building_blocks:Adobe", { minetest.register_node("building_blocks:Adobe", {
tiles = {"building_blocks_Adobe.png"}, tiles = {"building_blocks_Adobe.png"},
description = "Adobe", description = S("Adobe"),
is_ground_content = true, is_ground_content = true,
groups = {crumbly=3}, groups = {crumbly=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
@ -8,7 +11,7 @@ minetest.register_node("building_blocks:Adobe", {
minetest.register_node("building_blocks:Roofing", { minetest.register_node("building_blocks:Roofing", {
tiles = {"building_blocks_Roofing.png"}, tiles = {"building_blocks_Roofing.png"},
is_ground_content = true, is_ground_content = true,
description = "Roof block", description = S("Roof block"),
groups = {snappy=3}, groups = {snappy=3},
}) })
minetest.register_craft({ minetest.register_craft({
@ -128,7 +131,7 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = 'building_blocks:tar_base 2', output = 'building_blocks:tar_base 4',
recipe = { recipe = {
{"default:coal_lump", "default:gravel"}, {"default:coal_lump", "default:gravel"},
{"default:gravel", "default:coal_lump"} {"default:gravel", "default:coal_lump"}
@ -136,7 +139,7 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = 'building_blocks:tar_base 2', output = 'building_blocks:tar_base 4',
recipe = { recipe = {
{"default:gravel", "default:coal_lump"}, {"default:gravel", "default:coal_lump"},
{"default:coal_lump", "default:gravel"} {"default:coal_lump", "default:gravel"}
@ -150,7 +153,7 @@ minetest.register_craft({
}) })
minetest.register_node("building_blocks:smoothglass", { minetest.register_node("building_blocks:smoothglass", {
drawtype = "glasslike", drawtype = "glasslike",
description = "Streak Free Glass", description = S("Streak Free Glass"),
tiles = {"building_blocks_sglass.png"}, tiles = {"building_blocks_sglass.png"},
inventory_image = minetest.inventorycube("building_blocks_sglass.png"), inventory_image = minetest.inventorycube("building_blocks_sglass.png"),
paramtype = "light", paramtype = "light",
@ -161,7 +164,7 @@ minetest.register_node("building_blocks:smoothglass", {
}) })
minetest.register_node("building_blocks:grate", { minetest.register_node("building_blocks:grate", {
drawtype = "glasslike", drawtype = "glasslike",
description = "Grate", description = S("Grate"),
tiles = {"building_blocks_grate.png"}, tiles = {"building_blocks_grate.png"},
inventory_image = minetest.inventorycube("building_blocks_grate.png"), inventory_image = minetest.inventorycube("building_blocks_grate.png"),
paramtype = "light", paramtype = "light",
@ -171,7 +174,7 @@ minetest.register_node("building_blocks:grate", {
}) })
minetest.register_node("building_blocks:Fireplace", { minetest.register_node("building_blocks:Fireplace", {
description = "Fireplace", description = S("Fireplace"),
tiles = { tiles = {
"building_blocks_cast_iron.png", "building_blocks_cast_iron.png",
"building_blocks_cast_iron.png", "building_blocks_cast_iron.png",
@ -188,7 +191,7 @@ minetest.register_node("building_blocks:Fireplace", {
minetest.register_node("building_blocks:woodglass", { minetest.register_node("building_blocks:woodglass", {
drawtype = "glasslike", drawtype = "glasslike",
description = "Wood Framed Glass", description = S("Wood Framed Glass"),
tiles = {"building_blocks_wglass.png"}, tiles = {"building_blocks_wglass.png"},
inventory_image = minetest.inventorycube("building_blocks_wglass.png"), inventory_image = minetest.inventorycube("building_blocks_wglass.png"),
paramtype = "light", paramtype = "light",
@ -199,7 +202,7 @@ minetest.register_node("building_blocks:woodglass", {
}) })
minetest.register_node("building_blocks:terrycloth_towel", { minetest.register_node("building_blocks:terrycloth_towel", {
drawtype = "raillike", drawtype = "raillike",
description = "Terrycloth towel", description = S("Terrycloth towel"),
tiles = {"building_blocks_towel.png"}, tiles = {"building_blocks_towel.png"},
inventory_image = "building_blocks_towel_inv.png", inventory_image = "building_blocks_towel_inv.png",
paramtype = "light", paramtype = "light",
@ -215,7 +218,7 @@ minetest.register_node("building_blocks:terrycloth_towel", {
}) })
minetest.register_node("building_blocks:Tarmac_spread", { minetest.register_node("building_blocks:Tarmac_spread", {
drawtype = "raillike", drawtype = "raillike",
description = "Tarmac Spread", description = S("Tarmac Spread"),
tiles = {"building_blocks_tar.png"}, tiles = {"building_blocks_tar.png"},
inventory_image = "building_blocks_tar_spread_inv.png", inventory_image = "building_blocks_tar_spread_inv.png",
paramtype = "light", paramtype = "light",
@ -232,7 +235,7 @@ minetest.register_node("building_blocks:Tarmac_spread", {
}) })
minetest.register_node("building_blocks:BWtile", { minetest.register_node("building_blocks:BWtile", {
drawtype = "raillike", drawtype = "raillike",
description = "Chess board tiling", description = S("Chess board tiling"),
tiles = {"building_blocks_BWtile.png"}, tiles = {"building_blocks_BWtile.png"},
inventory_image = "building_blocks_bwtile_inv.png", inventory_image = "building_blocks_bwtile_inv.png",
paramtype = "light", paramtype = "light",
@ -248,7 +251,9 @@ minetest.register_node("building_blocks:BWtile", {
}) })
minetest.register_node("building_blocks:brobble_spread", { minetest.register_node("building_blocks:brobble_spread", {
drawtype = "raillike", drawtype = "raillike",
description = "Brobble Spread", -- Translators: "Brobble" is a portmanteau of "Brick" and "Cobble".
-- Translate however you see fit.
description = S("Brobble Spread"),
tiles = {"building_blocks_brobble.png"}, tiles = {"building_blocks_brobble.png"},
inventory_image = "building_blocks_brobble_spread_inv.png", inventory_image = "building_blocks_brobble_spread_inv.png",
paramtype = "light", paramtype = "light",
@ -264,7 +269,7 @@ minetest.register_node("building_blocks:brobble_spread", {
}) })
minetest.register_node("building_blocks:gravel_spread", { minetest.register_node("building_blocks:gravel_spread", {
drawtype = "raillike", drawtype = "raillike",
description = "Gravel Spread", description = S("Gravel Spread"),
tiles = {"default_gravel.png"}, tiles = {"default_gravel.png"},
inventory_image = "building_blocks_gravel_spread_inv.png", inventory_image = "building_blocks_gravel_spread_inv.png",
paramtype = "light", paramtype = "light",
@ -285,7 +290,7 @@ minetest.register_node("building_blocks:gravel_spread", {
minetest.register_node("building_blocks:hardwood", { minetest.register_node("building_blocks:hardwood", {
tiles = {"building_blocks_hardwood.png"}, tiles = {"building_blocks_hardwood.png"},
is_ground_content = true, is_ground_content = true,
description = "Hardwood", description = S("Hardwood"),
groups = {choppy=1,flammable=1}, groups = {choppy=1,flammable=1},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
}) })
@ -327,6 +332,17 @@ if minetest.get_modpath("moreblocks") then
}), }),
} }
) )
for _, i in ipairs(stairsplus.shapes_list) do
local class = i[1]
local cut = i[2]
minetest.unregister_item("moreblocks:"..class.."tar"..cut)
minetest.register_alias("moreblocks:"..class.."tar"..cut, "building_blocks:"..class.."tar"..cut)
end
minetest.unregister_item("moreblocks:tar")
minetest.register_alias("moreblocks:tar", "building_blocks:Tar")
stairsplus:register_all( stairsplus:register_all(
"building_blocks", "building_blocks",
"tar", "tar",
@ -338,6 +354,7 @@ if minetest.get_modpath("moreblocks") then
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
} }
) )
stairsplus:register_all( stairsplus:register_all(
"building_blocks", "building_blocks",
"grate", "grate",
@ -448,44 +465,44 @@ else
bb_stairs.register_stair_and_slab("marble","building_blocks:Marble", bb_stairs.register_stair_and_slab("marble","building_blocks:Marble",
{cracky=3}, {cracky=3},
{"building_blocks_marble.png"}, {"building_blocks_marble.png"},
"Marble stair", S("Marble stair"),
"Marble slab" S("Marble slab")
) )
bb_stairs.register_stair_and_slab("hardwood","building_blocks:hardwood", bb_stairs.register_stair_and_slab("hardwood","building_blocks:hardwood",
{choppy=1,flammable=1}, {choppy=1,flammable=1},
{"building_blocks_hardwood.png"}, {"building_blocks_hardwood.png"},
"Hardwood stair", S("Hardwood stair"),
"Hardwood slab" S("Hardwood slab")
) )
bb_stairs.register_stair_and_slab("fakegrass","building_blocks:fakegrass", bb_stairs.register_stair_and_slab("fakegrass","building_blocks:fakegrass",
{crumbly=3}, {crumbly=3},
{"default_grass.png"}, {"default_grass.png"},
"Grass stair", S("Grass stair"),
"Grass slab" S("Grass slab")
) )
bb_stairs.register_stair_and_slab("tar","building_blocks:Tar", bb_stairs.register_stair_and_slab("tar","building_blocks:Tar",
{crumbly=1}, {crumbly=1},
{"building_blocks_tar.png"}, {"building_blocks_tar.png"},
"Tar stair", S("Tar stair"),
"Tar slab" S("Tar slab")
) )
bb_stairs.register_stair_and_slab("grate","building_blocks:grate", bb_stairs.register_stair_and_slab("grate","building_blocks:grate",
{cracky=1}, {cracky=1},
{"building_blocks_grate.png"}, {"building_blocks_grate.png"},
"Grate Stair", S("Grate Stair"),
"Grate Slab" S("Grate Slab")
) )
bb_stairs.register_stair_and_slab("Adobe", "building_blocks:Adobe", bb_stairs.register_stair_and_slab("Adobe", "building_blocks:Adobe",
{crumbly=3}, {crumbly=3},
{"building_blocks_Adobe.png"}, {"building_blocks_Adobe.png"},
"Adobe stair", S("Adobe stair"),
"Adobe slab" S("Adobe slab")
) )
bb_stairs.register_stair_and_slab("Roofing", "building_blocks:Roofing", bb_stairs.register_stair_and_slab("Roofing", "building_blocks:Roofing",
{snappy=3}, {snappy=3},
{"building_blocks_Roofing.png"}, {"building_blocks_Roofing.png"},
"Roofing stair", S("Roofing stair"),
"Roofing slab" S("Roofing slab")
) )
end end
@ -498,7 +515,7 @@ minetest.register_craft({
minetest.register_node("building_blocks:fakegrass", { minetest.register_node("building_blocks:fakegrass", {
tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
description = "Fake Grass", description = S("Fake Grass"),
is_ground_content = true, is_ground_content = true,
groups = {crumbly=3}, groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults({ sounds = default.node_sound_dirt_defaults({
@ -507,13 +524,13 @@ minetest.register_node("building_blocks:fakegrass", {
}) })
minetest.register_craftitem("building_blocks:sticks", { minetest.register_craftitem("building_blocks:sticks", {
description = "Small bundle of sticks", description = S("Small bundle of sticks"),
image = "building_blocks_sticks.png", image = "building_blocks_sticks.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
}) })
minetest.register_craftitem("building_blocks:tar_base", { minetest.register_craftitem("building_blocks:tar_base", {
description = "Tar base", description = S("Tar base"),
image = "building_blocks_tar_base.png", image = "building_blocks_tar_base.png",
}) })
@ -537,14 +554,14 @@ minetest.register_alias("building_blocks:faggot", "building_blocks:sticks")
minetest.register_alias("marble", "building_blocks:Marble") minetest.register_alias("marble", "building_blocks:Marble")
minetest.register_node("building_blocks:Tar", { minetest.register_node("building_blocks:Tar", {
description = "Tar", description = S("Tar"),
tiles = {"building_blocks_tar.png"}, tiles = {"building_blocks_tar.png"},
is_ground_content = true, is_ground_content = true,
groups = {crumbly=1, tar_block = 1}, groups = {crumbly=1, tar_block = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("building_blocks:Marble", { minetest.register_node("building_blocks:Marble", {
description = "Marble", description = S("Marble"),
tiles = {"building_blocks_marble.png"}, tiles = {"building_blocks_marble.png"},
is_ground_content = true, is_ground_content = true,
groups = {cracky=3, marble = 1}, groups = {cracky=3, marble = 1},
@ -568,7 +585,7 @@ minetest.register_craft({
}) })
minetest.register_tool("building_blocks:knife", { minetest.register_tool("building_blocks:knife", {
description = "Tar Knife", description = S("Tar Knife"),
inventory_image = "building_blocks_knife.png", inventory_image = "building_blocks_knife.png",
tool_capabilities = { tool_capabilities = {
max_drop_level=0, max_drop_level=0,
@ -590,7 +607,7 @@ minetest.register_craft({
if not minetest.get_modpath("technic") then if not minetest.get_modpath("technic") then
minetest.register_node( ":technic:granite", { minetest.register_node( ":technic:granite", {
description = "Granite", description = S("Granite"),
tiles = { "technic_granite.png" }, tiles = { "technic_granite.png" },
is_ground_content = true, is_ground_content = true,
groups = {cracky=1}, groups = {cracky=1},
@ -608,7 +625,7 @@ if not minetest.get_modpath("technic") then
if minetest.get_modpath("moreblocks") then if minetest.get_modpath("moreblocks") then
stairsplus:register_all("technic", "granite", "technic:granite", { stairsplus:register_all("technic", "granite", "technic:granite", {
description="Granite", description=S("Granite"),
groups={cracky=1, not_in_creative_inventory=1}, groups={cracky=1, not_in_creative_inventory=1},
tiles={"technic_granite.png"}, tiles={"technic_granite.png"},
}) })

View File

@ -1 +1,2 @@
default default
homedecor

View File

@ -1,3 +1,6 @@
local S = homedecor_i18n.gettext
local chains_sbox = { local chains_sbox = {
type = "fixed", type = "fixed",
fixed = { -0.1, -0.625, -0.1, 0.1, 0.5, 0.1 } fixed = { -0.1, -0.625, -0.1, 0.1, 0.5, 0.1 }
@ -12,7 +15,7 @@ local topchains_sbox = {
} }
minetest.register_node("chains:chain", { minetest.register_node("chains:chain", {
description = "Hanging chain (wrought iron)", description = S("Hanging chain (wrought iron)"),
drawtype = "mesh", drawtype = "mesh",
mesh = "chains.obj", mesh = "chains.obj",
tiles = {"chains_wrought_iron.png"}, tiles = {"chains_wrought_iron.png"},
@ -26,7 +29,7 @@ minetest.register_node("chains:chain", {
}) })
minetest.register_node("chains:chain_brass", { minetest.register_node("chains:chain_brass", {
description = "Hanging chain (brass)", description = S("Hanging chain (brass)"),
drawtype = "mesh", drawtype = "mesh",
mesh = "chains.obj", mesh = "chains.obj",
tiles = {"chains_brass.png"}, tiles = {"chains_brass.png"},
@ -40,7 +43,7 @@ minetest.register_node("chains:chain_brass", {
}) })
minetest.register_node("chains:chain_top", { minetest.register_node("chains:chain_top", {
description = "Hanging chain (ceiling mount, wrought iron)", description = S("Hanging chain (ceiling mount, wrought iron)"),
drawtype = "mesh", drawtype = "mesh",
mesh = "top_chains.obj", mesh = "top_chains.obj",
tiles = {"chains_wrought_iron.png"}, tiles = {"chains_wrought_iron.png"},
@ -54,7 +57,7 @@ minetest.register_node("chains:chain_top", {
}) })
minetest.register_node("chains:chain_top_brass", { minetest.register_node("chains:chain_top_brass", {
description = "Hanging chain (ceiling mount, brass)", description = S("Hanging chain (ceiling mount, brass)"),
drawtype = "mesh", drawtype = "mesh",
mesh = "top_chains.obj", mesh = "top_chains.obj",
tiles = {"chains_brass.png"}, tiles = {"chains_brass.png"},
@ -68,13 +71,12 @@ minetest.register_node("chains:chain_top_brass", {
}) })
minetest.register_node("chains:chandelier", { minetest.register_node("chains:chandelier", {
description = "Chandelier (wrought iron)", description = S("Chandelier (wrought iron)"),
paramtype = "light", paramtype = "light",
light_source = default.LIGHT_MAX-2, light_source = default.LIGHT_MAX-2,
walkable = false, walkable = false,
climbable = true, climbable = true,
sunlight_propagates = true, sunlight_propagates = true,
paramtype = "light",
tiles = { tiles = {
"chains_wrought_iron.png", "chains_wrought_iron.png",
"chains_candle.png", "chains_candle.png",
@ -95,13 +97,12 @@ minetest.register_node("chains:chandelier", {
}) })
minetest.register_node("chains:chandelier_brass", { minetest.register_node("chains:chandelier_brass", {
description = "Chandelier (brass)", description = S("Chandelier (brass)"),
paramtype = "light", paramtype = "light",
light_source = default.LIGHT_MAX-2, light_source = default.LIGHT_MAX-2,
walkable = false, walkable = false,
climbable = true, climbable = true,
sunlight_propagates = true, sunlight_propagates = true,
paramtype = "light",
tiles = { tiles = {
"chains_brass.png", "chains_brass.png",
"chains_candle.png", "chains_candle.png",

View File

@ -1,3 +1,6 @@
local S = homedecor_i18n.gettext
-- Amiga 500 lookalike -- Amiga 500 lookalike
computer.register("computer:shefriendSOO", { computer.register("computer:shefriendSOO", {
description = "SheFriendSOO", description = "SheFriendSOO",
@ -150,6 +153,19 @@ computer.register("computer:admiral128", {
}) })
}) })
-- XBox lookalike
computer.register("computer:hueg_box", {
description = "HUEG Box",
tiles_off = { },
node_box = computer.pixelnodebox(16, {
-- X Y Z W H L
{ 0, 0, 7, 16, 6, 9 }, -- Console
{ 2, 0, 1, 11, 3, 6 }, -- Controller
{ 2, 0, 0, 2, 3, 1 },
{ 11, 0, 0, 2, 3, 1 },
})
})
-- Generic Flat Screen LCD (16x9) with keyboard -- Generic Flat Screen LCD (16x9) with keyboard
local mo_sbox = { local mo_sbox = {
type = "fixed", type = "fixed",
@ -157,7 +173,7 @@ local mo_sbox = {
} }
minetest.register_node("computer:monitor", { minetest.register_node("computer:monitor", {
description = "Monitor and keyboard", description = S("Monitor and keyboard"),
inventory_image = "computer_monitor_inv.png", inventory_image = "computer_monitor_inv.png",
drawtype = "mesh", drawtype = "mesh",
mesh = "computer_monitor.obj", mesh = "computer_monitor.obj",
@ -175,7 +191,6 @@ minetest.register_node("computer:monitor", {
}) })
minetest.register_node("computer:monitor_on", { minetest.register_node("computer:monitor_on", {
description = "Monitor and keyboard",
drawtype = "mesh", drawtype = "mesh",
mesh = "computer_monitor.obj", mesh = "computer_monitor.obj",
tiles = {"monitor_display.png^[transformFX", "monitor_plastic.png", "computer_black.png", "monitor_plastic.png"}, tiles = {"monitor_display.png^[transformFX", "monitor_plastic.png", "computer_black.png", "monitor_plastic.png"},
@ -200,7 +215,7 @@ minetest.register_alias("computer:monitor_desktop", "computer:monitor")
--WIFI Router (linksys look-a-like) --WIFI Router (linksys look-a-like)
minetest.register_node("computer:router", { minetest.register_node("computer:router", {
description = "WIFI Router", description = S("WIFI Router"),
inventory_image = "computer_router_inv.png", inventory_image = "computer_router_inv.png",
tiles = {"computer_router_t.png","computer_router_bt.png","computer_router_l.png","computer_router_r.png","computer_router_b.png", tiles = {"computer_router_t.png","computer_router_bt.png","computer_router_l.png","computer_router_r.png","computer_router_b.png",
{name="computer_router_f_animated.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=1.0}},}, --"computer_router_f.png"}, {name="computer_router_f_animated.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=1.0}},}, --"computer_router_f.png"},
@ -228,7 +243,7 @@ local pct_cbox = {
--Modern PC Tower --Modern PC Tower
minetest.register_node("computer:tower", { minetest.register_node("computer:tower", {
description = "Computer Tower", description = S("Computer Tower"),
inventory_image = "computer_tower_inv.png", inventory_image = "computer_tower_inv.png",
drawtype = "mesh", drawtype = "mesh",
mesh = "computer_tower.obj", mesh = "computer_tower.obj",
@ -245,7 +260,7 @@ minetest.register_alias("computer:tower_on", "computer:tower")
-- Printer/scaner combo -- Printer/scaner combo
minetest.register_node("computer:printer", { minetest.register_node("computer:printer", {
description = "Printer Scaner Combo", description = S("Printer-Scanner Combo"),
inventory_image = "computer_printer_inv.png", inventory_image = "computer_printer_inv.png",
tiles = {"computer_printer_t.png","computer_printer_bt.png","computer_printer_l.png", tiles = {"computer_printer_t.png","computer_printer_bt.png","computer_printer_l.png",
"computer_printer_r.png","computer_printer_b.png","computer_printer_f.png"}, "computer_printer_r.png","computer_printer_b.png","computer_printer_f.png"},
@ -273,7 +288,7 @@ minetest.register_node("computer:printer", {
--Rack Server --Rack Server
minetest.register_node("computer:server", { minetest.register_node("computer:server", {
drawtype = "nodebox", drawtype = "nodebox",
description = "Rack Server", description = S("Rack Server"),
tiles = { tiles = {
'computer_server_t.png', 'computer_server_t.png',
'computer_server_bt.png', 'computer_server_bt.png',
@ -303,7 +318,8 @@ minetest.register_node("computer:server", {
on_place = function(itemstack, placer, pointed_thing) on_place = function(itemstack, placer, pointed_thing)
local pos = pointed_thing.above local pos = pointed_thing.above
if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name ~= "air" then if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name ~= "air" then
minetest.chat_send_player( placer:get_player_name(), "Not enough vertical space to place a server!" ) minetest.chat_send_player( placer:get_player_name(),
S("Not enough vertical space to place a server!" ))
return itemstack return itemstack
end end
return minetest.item_place(itemstack, placer, pointed_thing) return minetest.item_place(itemstack, placer, pointed_thing)
@ -312,7 +328,6 @@ minetest.register_node("computer:server", {
minetest.register_node("computer:server_on", { minetest.register_node("computer:server_on", {
drawtype = "nodebox", drawtype = "nodebox",
description = "Rack Server",
tiles = { tiles = {
'computer_server_t.png', 'computer_server_t.png',
'computer_server_bt.png', 'computer_server_bt.png',

View File

@ -1,3 +1,2 @@
default default
intllib? homedecor_i18n

View File

@ -4,8 +4,7 @@
-- This file defines some items in order to not have to depend on other mods. -- This file defines some items in order to not have to depend on other mods.
-- Boilerplate to support localized strings if intllib mod is installed. local S = homedecor_i18n.gettext
local S = rawget(_G, "intllib") and intllib.Getter() or function(s) return s end
if (not minetest.get_modpath("homedecor")) then if (not minetest.get_modpath("homedecor")) then

View File

@ -1,3 +1,6 @@
local S = homedecor_i18n.gettext
local shapes = { local shapes = {
{ { x = {0, 1, 0, 1}, y = {0, 0, 1, 1} } }, { { x = {0, 1, 0, 1}, y = {0, 0, 1, 1} } },
@ -35,7 +38,7 @@ local buttons = "button[3,4.5;0.6,0.6;left;<]"
.."button[4.2,5.3;0.6,0.6;drop;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;R]"
.."button[5.4,4.5;0.6,0.6;right;>]" .."button[5.4,4.5;0.6,0.6;right;>]"
.."button[3.5,3;2,2;new;New Game]" .."button[3.5,3;2,2;new;"..minetest.formspec_escape(S("New Game")).."]"
local formsize = "size[5.9,5.7]" local formsize = "size[5.9,5.7]"
local boardx, boardy = 0, 0 local boardx, boardy = 0, 0
@ -241,7 +244,7 @@ local function step(pos, fields)
end end
minetest.register_node("computer:tetris_arcade", { minetest.register_node("computer:tetris_arcade", {
description="Tetris Arcade", description=S("Tetris Arcade"),
drawtype = "mesh", drawtype = "mesh",
mesh = "tetris_arcade.obj", mesh = "tetris_arcade.obj",
tiles = {"tetris_arcade.png"}, tiles = {"tetris_arcade.png"},
@ -259,7 +262,8 @@ minetest.register_node("computer:tetris_arcade", {
}, },
on_construct = function(pos) on_construct = function(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("formspec", formsize.."button[2,2.5;2,2;new;New Game]" meta:set_string("formspec", formsize
.."button[2,2.5;2,2;new;"..minetest.formspec_escape(S("New Game")).."]"
..default.gui_bg..default.gui_bg_img..default.gui_slots) ..default.gui_bg..default.gui_bg_img..default.gui_slots)
end, end,
on_timer = function(pos) on_timer = function(pos)
@ -275,7 +279,7 @@ minetest.register_node("computer:tetris_arcade", {
return itemstack return itemstack
end end
if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name ~= "air" then if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name ~= "air" then
minetest.chat_send_player(placer:get_player_name(), "No room for place the Arcade!") minetest.chat_send_player(placer:get_player_name(), S("No room for place the Arcade!"))
return itemstack return itemstack
end end
local dir = placer:get_look_dir() local dir = placer:get_look_dir()

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

View File

@ -1 +1,2 @@
default default
homedecor

View File

@ -1,3 +1,6 @@
local S = homedecor_i18n.gettext
screwdriver = screwdriver or {} screwdriver = screwdriver or {}
local function start_smoke(pos, node, clicker, chimney) local function start_smoke(pos, node, clicker, chimney)
@ -64,12 +67,16 @@ local function stop_smoke(pos)
end end
-- FLAME TYPES -- FLAME TYPES
local flame_types = {"fake", "ice"} local flame_types = {
{ "fake", S("Fake fire") },
{ "ice", S("Ice fire") },
}
for _, f in ipairs(flame_types) do for _, f in ipairs(flame_types) do
minetest.register_node("fake_fire:"..f.."_fire", { local name, desc = unpack(f)
inventory_image = f.."_fire_inv.png", minetest.register_node("fake_fire:"..name.."_fire", {
description = f.." fire", inventory_image = name.."_fire_inv.png",
description = desc,
drawtype = "plantlike", drawtype = "plantlike",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
@ -80,7 +87,7 @@ for _, f in ipairs(flame_types) do
light_source = 14, light_source = 14,
waving = 1, waving = 1,
tiles = { tiles = {
{name=f.."_fire_animated.png", animation={type="vertical_frames", {name=name.."_fire_animated.png", animation={type="vertical_frames",
aspect_w=16, aspect_h=16, length=1.5}}, aspect_w=16, aspect_h=16, length=1.5}},
}, },
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
@ -99,7 +106,7 @@ end
minetest.register_node("fake_fire:fancy_fire", { minetest.register_node("fake_fire:fancy_fire", {
inventory_image = "fancy_fire_inv.png", inventory_image = "fancy_fire_inv.png",
description = "Fancy Fire", description = S("Fancy Fire"),
drawtype = "mesh", drawtype = "mesh",
mesh = "fancy_fire.obj", mesh = "fancy_fire.obj",
paramtype = "light", paramtype = "light",
@ -136,7 +143,7 @@ minetest.register_node("fake_fire:fancy_fire", {
-- EMBERS -- EMBERS
minetest.register_node("fake_fire:embers", { minetest.register_node("fake_fire:embers", {
description = "Glowing Embers", description = S("Glowing Embers"),
tiles = { tiles = {
{name="embers_animated.png", animation={type="vertical_frames", {name="embers_animated.png", animation={type="vertical_frames",
aspect_w=16, aspect_h=16, length=2}}, aspect_w=16, aspect_h=16, length=2}},
@ -148,12 +155,16 @@ minetest.register_node("fake_fire:embers", {
}) })
-- CHIMNEYS -- CHIMNEYS
local materials = {"stone", "sandstone"} local materials = {
{ "stone", S("Stone chimney top") },
{ "sandstone", S("Sandstone chimney top") },
}
for _, m in ipairs(materials) do for _, mat in ipairs(materials) do
minetest.register_node("fake_fire:chimney_top_"..m, { local name, desc = unpack(mat)
description = "Chimney Top - "..m, minetest.register_node("fake_fire:chimney_top_"..name, {
tiles = {"default_"..m..".png^chimney_top.png", "default_"..m..".png"}, description = desc,
tiles = {"default_"..name..".png^chimney_top.png", "default_"..name..".png"},
groups = {snappy=3}, groups = {snappy=3},
paramtype = "light", paramtype = "light",
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
@ -174,14 +185,14 @@ for _, m in ipairs(materials) do
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = 'fake_fire:chimney_top_'..m, output = 'fake_fire:chimney_top_'..name,
recipe = {"default:torch", "stairs:slab_"..m} recipe = {"default:torch", "stairs:slab_"..name}
}) })
end end
-- FLINT and STEEL -- FLINT and STEEL
minetest.register_tool("fake_fire:flint_and_steel", { minetest.register_tool("fake_fire:flint_and_steel", {
description = "Flint and steel", description = S("Flint and steel"),
inventory_image = "flint_and_steel.png", inventory_image = "flint_and_steel.png",
liquids_pointable = false, liquids_pointable = false,
stack_max = 1, stack_max = 1,
@ -199,7 +210,7 @@ minetest.register_tool("fake_fire:flint_and_steel", {
minetest.set_node(pointed_thing.above, {name="fake_fire:fake_fire"}) minetest.set_node(pointed_thing.above, {name="fake_fire:fake_fire"})
end end
else else
minetest.chat_send_player(user:get_player_name(), "This area is protected!") minetest.chat_send_player(user:get_player_name(), S("This area is protected!"))
end end
else else
return return

View File

@ -1,43 +1,62 @@
local S = homedecor.gettext local S = homedecor_i18n.gettext
local bathroom_tile_colors = { minetest.register_node("homedecor:bathroom_tiles_dark", {
{ "1", S("white/grey"), "#c0c0c0:200" }, description = S("Bathroom/kitchen tiles (dark)"),
{ "2", S("white/dark grey"), "#404040:150" },
{ "3", S("white/black"), "#000000:200" },
{ "4", S("black/dark grey"), "" },
{ "red", S("white/red"), "#d00000:150" },
{ "green", S("white/green"), "#00d000:150" },
{ "blue", S("white/blue"), "#0000d0:150" },
{ "yellow", S("white/yellow"), "#ffff00:150" },
{ "tan", S("white/tan"), "#ceaf42:150" }
}
for _, c in ipairs(bathroom_tile_colors) do
local color, shade, hue = unpack(c)
local coloredtile = "homedecor_bathroom_tiles_bg.png^(homedecor_bathroom_tiles_fg.png^[colorize:"..hue..")"
if color == "4" then
coloredtile = "(homedecor_bathroom_tiles_bg.png^[colorize:#000000:75)"..
"^(homedecor_bathroom_tiles_fg.png^[colorize:#000000:200)"
end
minetest.register_node("homedecor:tiles_"..color, {
description = S("Bathroom/kitchen tiles (@1)", shade),
tiles = { tiles = {
coloredtile, "homedecor_bathroom_tiles_bg.png"
coloredtile, },
coloredtile, overlay_tiles = {
coloredtile, { name = "homedecor_bathroom_tiles_fg.png", color = 0xff606060 },
"("..coloredtile..")^[transformR90",
"("..coloredtile..")^[transformR90"
}, },
groups = {cracky=3},
paramtype = "light", 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(), 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 = {
"homedecor_bathroom_tiles_bg.png"
},
overlay_tiles = {
{ name = "homedecor_bathroom_tiles_fg.png", color = 0xffc0c0c0 },
},
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 = {
"homedecor_bathroom_tiles_bg.png"
},
overlay_tiles = {
{ name = "homedecor_bathroom_tiles_fg.png", color = 0xffffffff },
},
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
}) })
end
local tr_cbox = { local tr_cbox = {
type = "fixed", type = "fixed",
@ -102,3 +121,73 @@ homedecor.register("medicine_cabinet_open", {
minetest.swap_node(pos, node) minetest.swap_node(pos, node)
end, end,
}) })
-- convert old static nodes
homedecor.old_static_bathroom_tiles = {
"homedecor:tiles_1",
"homedecor:tiles_2",
"homedecor:tiles_3",
"homedecor:tiles_4",
"homedecor:tiles_red",
"homedecor:tiles_tan",
"homedecor:tiles_yellow",
"homedecor:tiles_green",
"homedecor:tiles_blue"
}
local old_to_color = {
"light_grey",
"grey",
"black",
"black"
}
minetest.register_lbm({
name = "homedecor:convert_bathroom_tiles",
label = "Convert bathroom tiles to use param2 color",
run_at_every_load = false,
nodenames = homedecor.old_static_bathroom_tiles,
action = function(pos, node)
local name = node.name
local newname = "homedecor:bathroom_tiles_light"
local a = string.find(name, "_")
local color = string.sub(name, a + 1)
if color == "tan" then
color = "yellow_s50"
elseif color == "1" or color == "2" or color == "3" or color == "4" then
if color == "4" then
newname = "homedecor:bathroom_tiles_medium"
end
color = old_to_color[tonumber(color)]
elseif color ~= "yellow" then
color = color.."_s50"
end
local paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color, "extended")
minetest.set_node(pos, { name = newname, param2 = paletteidx })
local meta = minetest.get_meta(pos)
meta:set_string("dye", "unifieddyes:"..color)
meta:set_string("palette", "ext")
end
})
minetest.register_lbm({
name = "homedecor:recolor_bathroom_tiles",
label = "Convert bathroom tiles to use UD extended palette",
run_at_every_load = false,
nodenames = {
"homedecor:bathroom_tiles_light",
"homedecor:bathroom_tiles_medium",
"homedecor:bathroom_tiles_dark",
},
action = function(pos, node)
local meta = minetest.get_meta(pos)
if meta:get_string("palette") ~= "ext" then
minetest.swap_node(pos, { name = node.name, param2 = unifieddyes.convert_classic_palette[node.param2] })
meta:set_string("palette", "ext")
end
end
})

View File

@ -1,4 +1,5 @@
local S = homedecor.gettext
local S = homedecor_i18n.gettext
local toilet_sbox = { local toilet_sbox = {
type = "fixed", type = "fixed",
@ -17,16 +18,16 @@ homedecor.register("toilet", {
description = S("Toilet"), description = S("Toilet"),
mesh = "homedecor_toilet_closed.obj", mesh = "homedecor_toilet_closed.obj",
tiles = { tiles = {
"homedecor_marble.png^[colorize:#ffffff:175", "homedecor_marble.png",
"homedecor_marble.png^[colorize:#ffffff:175", "homedecor_marble.png",
"homedecor_marble.png^[colorize:#ffffff:175", "homedecor_marble.png",
"homedecor_generic_metal_black.png^[brighten" { name = "homedecor_generic_metal.png", color = homedecor.color_med_grey }
}, },
selection_box = toilet_sbox, selection_box = toilet_sbox,
node_box = toilet_cbox, node_box = toilet_cbox,
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_punch = function (pos, node, puncher) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "homedecor:toilet_open" node.name = "homedecor:toilet_open"
minetest.set_node(pos, node) minetest.set_node(pos, node)
end end
@ -35,18 +36,18 @@ homedecor.register("toilet", {
homedecor.register("toilet_open", { homedecor.register("toilet_open", {
mesh = "homedecor_toilet_open.obj", mesh = "homedecor_toilet_open.obj",
tiles = { tiles = {
"homedecor_marble.png^[colorize:#ffffff:175", "homedecor_marble.png",
"homedecor_marble.png^[colorize:#ffffff:175", "homedecor_marble.png",
"homedecor_marble.png^[colorize:#ffffff:175", "homedecor_marble.png",
"default_water.png", "default_water.png",
"homedecor_generic_metal_black.png^[brighten" { name = "homedecor_generic_metal.png", color = homedecor.color_med_grey }
}, },
selection_box = toilet_sbox, selection_box = toilet_sbox,
collision_box = toilet_cbox, collision_box = toilet_cbox,
drop = "homedecor:toilet", drop = "homedecor:toilet",
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_punch = function (pos, node, puncher) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "homedecor:toilet" node.name = "homedecor:toilet"
minetest.set_node(pos, node) minetest.set_node(pos, node)
minetest.sound_play("homedecor_toilet_flush", { minetest.sound_play("homedecor_toilet_flush", {
@ -89,7 +90,7 @@ homedecor.register("sink", {
description = S("Bathroom Sink"), description = S("Bathroom Sink"),
mesh = "homedecor_bathroom_sink.obj", mesh = "homedecor_bathroom_sink.obj",
tiles = { tiles = {
"homedecor_marble.png^[colorize:#ffffff:175", "homedecor_marble.png",
"homedecor_marble.png", "homedecor_marble.png",
"default_water.png" "default_water.png"
}, },
@ -137,9 +138,9 @@ homedecor.register("taps", {
description = S("Bathroom taps/faucet"), description = S("Bathroom taps/faucet"),
mesh = "homedecor_bathroom_faucet.obj", mesh = "homedecor_bathroom_faucet.obj",
tiles = { tiles = {
"homedecor_generic_metal_black.png^[brighten", { name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
"homedecor_generic_metal_bright.png", "homedecor_generic_metal_bright.png",
"homedecor_generic_metal_black.png^[colorize:#ffffff:200", "homedecor_generic_metal.png",
"homedecor_generic_metal_bright.png" "homedecor_generic_metal_bright.png"
}, },
inventory_image = "3dforniture_taps_inv.png", inventory_image = "3dforniture_taps_inv.png",
@ -162,7 +163,7 @@ homedecor.register("taps_brass", {
tiles = { tiles = {
"homedecor_generic_metal_brass.png", "homedecor_generic_metal_brass.png",
"homedecor_generic_metal_brass.png", "homedecor_generic_metal_brass.png",
"homedecor_generic_metal_black.png^[colorize:#ffffff:200", "homedecor_generic_metal.png",
"homedecor_generic_metal_brass.png" "homedecor_generic_metal_brass.png"
}, },
inventory_image = "3dforniture_taps_brass_inv.png", inventory_image = "3dforniture_taps_brass_inv.png",
@ -218,7 +219,7 @@ homedecor.register("shower_head", {
drawtype = "mesh", drawtype = "mesh",
mesh = "homedecor_shower_head.obj", mesh = "homedecor_shower_head.obj",
tiles = { tiles = {
"homedecor_generic_metal_black.png^[brighten", "homedecor_generic_metal.png",
"homedecor_shower_head.png" "homedecor_shower_head.png"
}, },
inventory_image = "homedecor_shower_head_inv.png", inventory_image = "homedecor_shower_head_inv.png",
@ -246,6 +247,46 @@ homedecor.register("shower_head", {
end end
}) })
homedecor.register("bathtub_clawfoot_brass_taps", {
drawtype = "mesh",
mesh = "homedecor_bathtub_clawfoot.obj",
tiles = {
{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
"homedecor_generic_metal_bright.png",
"homedecor_generic_metal_bright.png",
"homedecor_generic_metal_brass.png",
"homedecor_marble.png",
"homedecor_bathtub_clawfoot_bottom_inside.png",
},
description = S("Bathtub, clawfoot, with brass taps"),
groups = {cracky=3},
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 1.5, 0.3125, 0.5 },
},
sounds = default.node_sound_stone_defaults(),
})
homedecor.register("bathtub_clawfoot_chrome_taps", {
drawtype = "mesh",
mesh = "homedecor_bathtub_clawfoot.obj",
tiles = {
{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
"homedecor_generic_metal_bright.png",
"homedecor_generic_metal_bright.png",
"homedecor_generic_metal_bright.png",
"homedecor_marble.png",
"homedecor_bathtub_clawfoot_bottom_inside.png",
},
description = S("Bathtub, clawfoot, with chrome taps"),
groups = {cracky=3},
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 1.5, 0.3125, 0.5 },
},
sounds = default.node_sound_stone_defaults(),
})
local bs_cbox = { local bs_cbox = {
type = "fixed", type = "fixed",
fixed = { -8/16, -8/16, 1/16, 8/16, 8/16, 8/16 } fixed = { -8/16, -8/16, 1/16, 8/16, 8/16, 8/16 }

View File

@ -1,34 +1,16 @@
local S, NS = homedecor.gettext, homedecor.ngettext local S = homedecor_i18n.gettext
local function N_(x) return x end local function N_(x) return x end
local bedcolors = {
{ S("black"), "black", "#000000:200" }, --new cg72
{ S("brown"), "brown", "#603010:175" },
{ S("blue"), "blue", "#0000d0:150" },
{ S("cyan"), "cyan", "#009fa7:150" }, --new cg72
{ S("dark grey"), "darkgrey", "#101010:175" },
{ S("dark green"), "dark_green", "#007000:150" },
{ S("green"), "green", "#00d000:150" }, --new cg72
{ S("grey"), "grey", "#101010:100" }, --new cg72
{ S("magenta"), "magenta", "#e0048b:150" }, --new cg72
{ S("orange"), "orange", "#ff3000:150" },
{ S("pink"), "pink", "#ff80b0:150" },
{ S("red"), "red", "#d00000:150" },
{ S("violet"), "violet", "#7000e0:150" },
{ S("white"), "white", "#000000:000" }, --new cg72
{ S("yellow"), "yellow", "#ffe000:150" }
}
local bed_sbox = { local bed_sbox = {
type = "fixed", type = "wallmounted",
fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 1.5 } wall_side = { -0.5, -0.5, -0.5, 0.5, 0.5, 1.5 }
} }
local bed_cbox = { local bed_cbox = {
type = "fixed", type = "wallmounted",
fixed = { wall_side = {
{ -0.5, -0.5, -0.5, 0.5, -0.05, 1.5 }, { -0.5, -0.5, -0.5, 0.5, -0.05, 1.5 },
{ -0.5, -0.5, 1.44, 0.5, 0.5, 1.5 }, { -0.5, -0.5, 1.44, 0.5, 0.5, 1.5 },
{ -0.5, -0.5, -0.5, 0.5, 0.18, -0.44 }, { -0.5, -0.5, -0.5, 0.5, 0.18, -0.44 },
@ -36,126 +18,136 @@ local bed_cbox = {
} }
local kbed_sbox = { local kbed_sbox = {
type = "fixed", type = "wallmounted",
fixed = { -0.5, -0.5, -0.5, 1.5, 0.5, 1.5 } wall_side = { -0.5, -0.5, -0.5, 1.5, 0.5, 1.5 }
} }
local kbed_cbox = { local kbed_cbox = {
type = "fixed", type = "wallmounted",
fixed = { wall_side = {
{ -0.5, -0.5, -0.5, 1.5, -0.05, 1.5 }, { -0.5, -0.5, -0.5, 1.5, -0.05, 1.5 },
{ -0.5, -0.5, 1.44, 1.5, 0.5, 1.5 }, { -0.5, -0.5, 1.44, 1.5, 0.5, 1.5 },
{ -0.5, -0.5, -0.5, 1.5, 0.18, -0.44 }, { -0.5, -0.5, -0.5, 1.5, 0.18, -0.44 },
} }
} }
for _, c in ipairs(bedcolors) do homedecor.register("bed_regular", {
local colordesc, color, hue = unpack(c)
local color2=color
if color == "darkgrey" then
color2 = "dark_grey"
end
homedecor.register("bed_"..color.."_regular", {
mesh = "homedecor_bed_regular.obj", mesh = "homedecor_bed_regular.obj",
tiles = { tiles = {
"homedecor_bed_frame.png", { name = "homedecor_bed_frame.png", color = 0xffffffff },
"default_wood.png", { name = "default_wood.png", color = 0xffffffff },
{ name = "wool_white.png", color = 0xffffffff },
"wool_white.png", "wool_white.png",
"wool_"..color2..".png", { name = "homedecor_bed_bottom.png", color = 0xffffffff },
"homedecor_bed_bottom.png", "wool_white.png^[brighten", -- pillow
"wool_"..color2..".png^[brighten", -- pillow
}, },
inventory_image = "homedecor_bed_inv.png^(homedecor_bed_overlay_inv.png^[colorize:"..hue..")", inventory_image = "homedecor_bed_inv.png",
description = S("Bed (@1)", colordesc), paramtype2 = "colorwallmounted",
groups = {snappy=3}, palette = "unifieddyes_palette_colorwallmounted.png",
description = S("Bed"),
groups = {snappy=3, ud_param2_colorable = 1},
selection_box = bed_sbox, selection_box = bed_sbox,
collision_box = bed_cbox, node_box = bed_cbox,
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_rotate = screwdriver.disallow, on_rotate = screwdriver.disallow,
after_place_node = function(pos, placer, itemstack, pointed_thing) 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 if not placer:get_player_control().sneak then
return homedecor.bed_expansion(pos, placer, itemstack, pointed_thing, color) return homedecor.bed_expansion(pos, placer, itemstack, pointed_thing)
end end
end, end,
after_dig_node = function(pos) after_dig_node = function(pos, oldnode, oldmetadata, digger)
homedecor.unextend_bed(pos, color) unifieddyes.after_dig_node(pos, oldnode, oldmetadata, digger)
homedecor.unextend_bed(pos)
end, end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
if minetest.get_modpath("beds") then local itemname = itemstack:get_name()
beds.on_rightclick(pos, clicker) if itemname == "homedecor:bed_regular" then
end homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true)
return itemstack return itemstack
else
-- if minetest.get_modpath("beds") then
-- beds.on_rightclick(pos, clicker)
-- end
return itemstack
end
end end
}) })
homedecor.register("bed_"..color.."_extended", { homedecor.register("bed_extended", {
mesh = "homedecor_bed_extended.obj", mesh = "homedecor_bed_extended.obj",
tiles = { tiles = {
"homedecor_bed_frame.png", { name = "homedecor_bed_frame.png", color = 0xffffffff },
"default_wood.png", { name = "default_wood.png", color = 0xffffffff },
{ name = "wool_white.png", color = 0xffffffff },
"wool_white.png", "wool_white.png",
"wool_"..color2..".png", { name = "homedecor_bed_bottom.png", color = 0xffffffff },
"homedecor_bed_bottom.png", "wool_white.png^[brighten",
"wool_"..color2..".png^[brighten",
}, },
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = bed_sbox, selection_box = bed_sbox,
collision_box = bed_cbox, node_box = bed_cbox,
groups = {snappy=3, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
expand = { forward = "air" }, expand = { forward = "air" },
on_rotate = screwdriver.disallow, on_rotate = screwdriver.disallow,
after_dig_node = function(pos) after_place_node = unifieddyes.recolor_on_place,
homedecor.unextend_bed(pos, color) after_dig_node = function(pos, oldnode, oldmetadata, digger)
unifieddyes.after_dig_node(pos, oldnode, oldmetadata, digger)
homedecor.unextend_bed(pos)
end, end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) -- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
if minetest.get_modpath("beds") then -- local itemname = itemstack:get_name()
beds.on_rightclick(pos, clicker) -- if minetest.get_modpath("beds") then
end -- beds.on_rightclick(pos, clicker)
return itemstack -- end
end, -- return itemstack
drop = "homedecor:bed_"..color.."_regular" -- end,
drop = "homedecor:bed_regular"
}) })
homedecor.register("bed_"..color.."_kingsize", { homedecor.register("bed_kingsize", {
mesh = "homedecor_bed_kingsize.obj", mesh = "homedecor_bed_kingsize.obj",
tiles = { tiles = {
"homedecor_bed_frame.png", { name = "homedecor_bed_frame.png", color = 0xffffffff },
"default_wood.png", { name = "default_wood.png", color = 0xffffffff },
{ name = "wool_white.png", color = 0xffffffff },
"wool_white.png", "wool_white.png",
"wool_"..color2..".png", { name = "homedecor_bed_bottom.png", color = 0xffffffff },
"homedecor_bed_bottom.png", "wool_white.png^[brighten",
"wool_"..color2..".png^[brighten",
}, },
inventory_image = "homedecor_bed_kingsize_inv.png^(homedecor_bed_kingsize_overlay_inv.png^[colorize:"..hue..")", paramtype2 = "colorwallmounted",
groups = {snappy=3, not_in_creative_inventory=1}, palette = "unifieddyes_palette_colorwallmounted.png",
description = S("Bed (@1, king sized)", colordesc), inventory_image = "homedecor_bed_kingsize_inv.png",
groups = {snappy=3, not_in_creative_inventory=1}, description = S("Bed (king sized)"),
groups = {snappy=3, ud_param2_colorable = 1},
selection_box = kbed_sbox, selection_box = kbed_sbox,
collision_box = kbed_cbox, node_box = kbed_cbox,
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_rotate = screwdriver.disallow, 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)
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger) after_dig_node = function(pos, oldnode, oldmetadata, digger)
unifieddyes.after_dig_node(pos, oldnode, oldmetadata, digger)
local inv = digger:get_inventory() local inv = digger:get_inventory()
if digger:get_player_control().sneak and inv:room_for_item("main", "bed_"..color.."_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_"..color.."_kingsize 1") inv:remove_item("main", "homedecor:bed_kingsize 1")
inv:add_item("main", "homedecor:bed_"..color.."_regular 2") inv:add_item("main", "homedecor:bed_regular 2")
end end
end, end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) -- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
if minetest.get_modpath("beds") then -- local itemname = itemstack:get_name()
beds.on_rightclick(pos, clicker) -- if minetest.get_modpath("beds") then
end -- beds.on_rightclick(pos, clicker)
return itemstack -- end
end -- return itemstack
-- end
}) })
minetest.register_alias("homedecor:bed_"..color.."_foot", "homedecor:bed_"..color.."_regular")
minetest.register_alias("homedecor:bed_"..color.."_footext", "homedecor:bed_"..color.."_extended")
minetest.register_alias("homedecor:bed_"..color.."_head", "air")
end
for _, w in pairs({ N_("mahogany"), N_("oak") }) do for _, w in pairs({ N_("mahogany"), N_("oak") }) do
homedecor.register("nightstand_"..w.."_one_drawer", { homedecor.register("nightstand_"..w.."_one_drawer", {
description = S("Nightstand with One Drawer (@1)", S(w)), description = S("Nightstand with One Drawer (@1)", S(w)),
@ -212,3 +204,78 @@ for _, w in pairs({ N_("mahogany"), N_("oak") }) do
}, },
}) })
end end
-- convert to param2 colorization
local bedcolors = {
"black",
"brown",
"blue",
"cyan",
"darkgrey",
"dark_green",
"green",
"grey",
"magenta",
"orange",
"pink",
"red",
"violet",
"white",
"yellow"
}
homedecor.old_bed_nodes = {}
for _, color in ipairs(bedcolors) do
table.insert(homedecor.old_bed_nodes, "homedecor:bed_"..color.."_regular")
table.insert(homedecor.old_bed_nodes, "homedecor:bed_"..color.."_extended")
table.insert(homedecor.old_bed_nodes, "homedecor:bed_"..color.."_kingsize")
end
minetest.register_lbm({
name = "homedecor:convert_beds",
label = "Convert homedecor static bed nodes to use param2 color",
run_at_every_load = false,
nodenames = homedecor.old_bed_nodes,
action = function(pos, node)
local name = node.name
local color = string.sub(name, string.find(name, "_") + 1)
-- -10 puts us near the end of the color field
color = string.sub(color, 1, string.find(color, "_", -10) - 1)
if color == "darkgrey" then
color = "dark_grey"
end
local paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted")
local old_fdir = math.floor(node.param2 % 32)
local new_fdir = 3
local new_name
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
local param2 = paletteidx + new_fdir
if string.find(name, "regular") then
new_name = "homedecor:bed_regular"
elseif string.find(name, "extended") then
new_name = "homedecor:bed_extended"
else
new_name = "homedecor:bed_kingsize"
end
minetest.set_node(pos, { name = new_name, param2 = param2 })
local meta = minetest.get_meta(pos)
meta:set_string("dye", "unifieddyes:"..color)
end
})

View File

@ -1,15 +1,14 @@
local S = homedecor_i18n.gettext
local S = homedecor.gettext
local function N_(x) return x end local function N_(x) return x end
local bookcolors = { local bookcolors = {
{ N_("red"), "#c00000:150" }, { N_("red"), 0xffd26466 },
{ N_("green"), "#008000:150" }, { N_("green"), 0xff62aa66 },
{ N_("blue"), "#4040c0:150" }, { N_("blue"), 0xff8686d7 },
{ N_("violet"), "#600070:150" }, { N_("violet"), 0xff9c65a7 },
{ N_("grey"), "#202020:150" }, { N_("grey"), 0xff757579 },
{ N_("brown"), "#603010:175" } { N_("brown"), 0xff896958 }
} }
local BOOK_FORMNAME = "homedecor:book_form" local BOOK_FORMNAME = "homedecor:book_form"
@ -39,17 +38,17 @@ for _, c in ipairs(bookcolors) do
minetest.remove_node(pos) minetest.remove_node(pos)
end end
local inv_img = "homedecor_book_inv.png^[colorize:"..hue.."^homedecor_book_trim_inv.png"
homedecor.register("book_"..color, { homedecor.register("book_"..color, {
description = S("Writable Book (@1)", S(color)), description = S("Writable Book (@1)", S(color)),
mesh = "homedecor_book.obj", mesh = "homedecor_book.obj",
tiles = { tiles = {
"(homedecor_book_cover.png^[colorize:"..hue..")^homedecor_book_cover_trim.png", { name = "homedecor_book_cover.png", color = hue },
"homedecor_book_edges.png" { name = "homedecor_book_edges.png", color = "white" }
},
overlay_tiles = {
{ name = "homedecor_book_cover_trim.png", color = "white" },
""
}, },
inventory_image = inv_img,
wield_image = inv_img,
groups = { snappy=3, oddly_breakable_by_hand=3, book=1 }, groups = { snappy=3, oddly_breakable_by_hand=3, book=1 },
walkable = false, walkable = false,
stack_max = 1, stack_max = 1,
@ -105,9 +104,9 @@ for _, c in ipairs(bookcolors) do
homedecor.register("book_open_"..color, { homedecor.register("book_open_"..color, {
mesh = "homedecor_book_open.obj", mesh = "homedecor_book_open.obj",
tiles = { tiles = {
"(homedecor_book_cover.png^[colorize:"..hue..")^homedecor_book_cover_trim.png", { name = "homedecor_book_cover.png", color = hue },
"homedecor_book_edges.png", { name = "homedecor_book_edges.png", color = "white" },
"homedecor_book_pages.png" { name = "homedecor_book_pages.png", color = "white" }
}, },
groups = { snappy=3, oddly_breakable_by_hand=3, not_in_creative_inventory=1 }, groups = { snappy=3, oddly_breakable_by_hand=3, not_in_creative_inventory=1 },
drop = "homedecor:book_"..color, drop = "homedecor:book_"..color,
@ -173,3 +172,6 @@ minetest.register_on_player_receive_fields(function(player, form_name, fields)
minetest.log("action", S("@1 has written in a book (title: \"@2\"): \"@3\" at location @4", minetest.log("action", S("@1 has written in a book (title: \"@2\"): \"@3\" at location @4",
player:get_player_name(), fields.title, fields.text, minetest.pos_to_string(player:getpos()))) player:get_player_name(), fields.title, fields.text, minetest.pos_to_string(player:getpos())))
end) end)
minetest.register_alias("homedecor:book", "homedecor:book_grey")
minetest.register_alias("homedecor:book_open", "homedecor:book_open_grey")

View File

@ -1,6 +1,6 @@
-- Nodes that would affect the local temperature e.g. fans, heater, A/C -- Nodes that would affect the local temperature e.g. fans, heater, A/C
local S = homedecor.gettext local S = homedecor_i18n.gettext
homedecor.register("air_conditioner", { homedecor.register("air_conditioner", {
description = S("Air Conditioner"), description = S("Air Conditioner"),
@ -59,7 +59,7 @@ homedecor.register("desk_fan", {
meta:set_string("active", "no") meta:set_string("active", "no")
add_mesh_desk_fan_entity(pos) add_mesh_desk_fan_entity(pos)
end, end,
on_punch = function(pos) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local entities = minetest.get_objects_inside_radius(pos, 0.1) local entities = minetest.get_objects_inside_radius(pos, 0.1)
local entity = entities[1] or add_mesh_desk_fan_entity(pos) local entity = entities[1] or add_mesh_desk_fan_entity(pos)
@ -132,7 +132,7 @@ local r_cbox = homedecor.nodebox.slab_z(-0.25)
homedecor.register("radiator", { homedecor.register("radiator", {
mesh = "homedecor_radiator.obj", mesh = "homedecor_radiator.obj",
tiles = { tiles = {
"homedecor_generic_metal_black.png^[colorize:#ffffff:200", "homedecor_generic_metal.png",
"homedecor_radiator_controls.png" "homedecor_radiator_controls.png"
}, },
inventory_image = "homedecor_radiator_inv.png", inventory_image = "homedecor_radiator_inv.png",

View File

@ -1,25 +1,27 @@
local S = homedecor_i18n.gettext
local clock_sbox = { local clock_sbox = {
type = "fixed", type = "fixed",
fixed = { -8/32, -8/32, 14/32, 8/32, 8/32, 16/32 } fixed = { -8/32, -8/32, 14/32, 8/32, 8/32, 16/32 }
} }
local clock_materials = { local clock_materials = {
{ "plastic", "homedecor_generic_plastic_black.png^[colorize:#ffffff:220" }, { "plastic", S("Plastic analog clock"), "homedecor_generic_plastic.png" },
{ "wood", "default_wood.png" } { "wood", S("Wooden analog clock"), "default_wood.png" }
} }
for i in ipairs(clock_materials) do for _, mat in ipairs(clock_materials) do
local m1 = clock_materials[i][1] local name, desc, tex = unpack(mat)
local m2 = clock_materials[i][2] homedecor.register("analog_clock_"..name, {
homedecor.register("analog_clock_"..m1, { description = desc,
description = "Analog clock ("..m1..")",
mesh = "homedecor_analog_clock.obj", mesh = "homedecor_analog_clock.obj",
tiles = { tiles = {
"homedecor_analog_clock_face.png", "homedecor_analog_clock_face.png",
m2, tex,
"homedecor_analog_clock_back.png" "homedecor_analog_clock_back.png"
}, },
inventory_image = "homedecor_analog_clock_"..m1.."_inv.png", inventory_image = "homedecor_analog_clock_"..name.."_inv.png",
walkable = false, walkable = false,
selection_box = clock_sbox, selection_box = clock_sbox,
groups = {snappy=3}, groups = {snappy=3},
@ -28,7 +30,7 @@ for i in ipairs(clock_materials) do
end end
homedecor.register("digital_clock", { homedecor.register("digital_clock", {
description = "Digital clock", description = S("Digital clock"),
tiles = { tiles = {
"homedecor_digital_clock_edges.png", "homedecor_digital_clock_edges.png",
"homedecor_digital_clock_edges.png", "homedecor_digital_clock_edges.png",
@ -50,7 +52,7 @@ homedecor.register("digital_clock", {
}) })
homedecor.register("alarm_clock", { homedecor.register("alarm_clock", {
description = "Alarm clock", description = S("Alarm clock"),
tiles = { tiles = {
"homedecor_alarm_clock_top.png", "homedecor_alarm_clock_top.png",
"homedecor_alarm_clock_bottom.png", "homedecor_alarm_clock_bottom.png",
@ -77,12 +79,12 @@ local gf_cbox = {
} }
homedecor.register("grandfather_clock", { homedecor.register("grandfather_clock", {
description = "Grandfather Clock", description = S("Grandfather Clock"),
mesh = "homedecor_grandfather_clock.obj", mesh = "homedecor_grandfather_clock.obj",
tiles = { tiles = {
"default_glass.png", "default_glass.png",
"homedecor_grandfather_clock_face.png", "homedecor_grandfather_clock_face.png",
"homedecor_generic_wood_luxury.png", homedecor.lux_wood,
"homedecor_grandfather_clock_face_edge.png", "homedecor_grandfather_clock_face_edge.png",
"homedecor_generic_metal_brass.png" "homedecor_generic_metal_brass.png"
}, },

View File

@ -1,5 +1,8 @@
local S = homedecor_i18n.gettext
minetest.register_node("homedecor:cobweb_corner", { minetest.register_node("homedecor:cobweb_corner", {
description = "Cobweb", description = S("Cobweb"),
drawtype = "torchlike", drawtype = "torchlike",
tiles = { "homedecor_cobweb_torchlike.png" }, tiles = { "homedecor_cobweb_torchlike.png" },
inventory_image = "homedecor_cobweb.png", inventory_image = "homedecor_cobweb.png",
@ -23,7 +26,7 @@ minetest.register_node("homedecor:cobweb_corner", {
}) })
minetest.register_node("homedecor:cobweb_centered", { minetest.register_node("homedecor:cobweb_centered", {
description = "Cobweb", description = S("Cobweb"),
drawtype = "nodebox", drawtype = "nodebox",
tiles = { "homedecor_cobweb.png" }, tiles = { "homedecor_cobweb.png" },
inventory_image = "homedecor_cobweb.png", inventory_image = "homedecor_cobweb.png",
@ -50,7 +53,7 @@ minetest.register_node("homedecor:cobweb_centered", {
}) })
minetest.register_node("homedecor:cobweb_flat", { minetest.register_node("homedecor:cobweb_flat", {
description = "Cobweb", description = S("Cobweb"),
drawtype = "nodebox", drawtype = "nodebox",
tiles = { "homedecor_cobweb.png" }, tiles = { "homedecor_cobweb.png" },
inventory_image = "homedecor_cobweb.png", inventory_image = "homedecor_cobweb.png",
@ -77,7 +80,7 @@ minetest.register_node("homedecor:cobweb_flat", {
}) })
minetest.register_node("homedecor:cobweb_plantlike", { minetest.register_node("homedecor:cobweb_plantlike", {
description = "Cobweb", description = S("Cobweb"),
drawtype = "plantlike", drawtype = "plantlike",
tiles = { "homedecor_cobweb_plantlike.png" }, tiles = { "homedecor_cobweb_plantlike.png" },
inventory_image = "homedecor_cobweb.png", inventory_image = "homedecor_cobweb.png",

View File

@ -2,7 +2,7 @@
-- --
-- Mostly my own code; overall template borrowed from game default -- Mostly my own code; overall template borrowed from game default
local S = homedecor.gettext local S = homedecor_i18n.gettext
-- misc craftitems -- misc craftitems
@ -537,10 +537,8 @@ minetest.register_craft({
recipe = "homedecor:skylight_frosted", recipe = "homedecor:skylight_frosted",
}) })
-- Various colors of shutters
minetest.register_craft( { minetest.register_craft( {
output = "homedecor:shutter_oak 2", output = "homedecor:shutter 2",
recipe = { recipe = {
{ "group:stick", "group:stick" }, { "group:stick", "group:stick" },
{ "group:stick", "group:stick" }, { "group:stick", "group:stick" },
@ -554,201 +552,6 @@ minetest.register_craft({
burntime = 30, burntime = 30,
}) })
--
minetest.register_craft( {
type = "shapeless",
output = "homedecor:shutter_black 4",
recipe = {
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"dye:black"
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:shutter_black",
burntime = 30,
})
--
minetest.register_craft( {
type = "shapeless",
output = "homedecor:shutter_dark_grey 4",
recipe = {
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"dye:dark_grey"
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:shutter_dark_grey",
burntime = 30,
})
--
minetest.register_craft( {
type = "shapeless",
output = "homedecor:shutter_grey 4",
recipe = {
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"dye:grey"
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:shutter_grey",
burntime = 30,
})
--
minetest.register_craft( {
type = "shapeless",
output = "homedecor:shutter_white 4",
recipe = {
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"dye:white"
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:shutter_white",
burntime = 30,
})
--
minetest.register_craft( {
type = "shapeless",
output = "homedecor:shutter_mahogany 4",
recipe = {
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"dye:brown"
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:shutter_mahogany",
burntime = 30,
})
minetest.register_craft( {
type = "shapeless",
output = "homedecor:shutter_red 4",
recipe = {
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"dye:red"
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:shutter_red",
burntime = 30,
})
minetest.register_craft( {
type = "shapeless",
output = "homedecor:shutter_yellow 4",
recipe = {
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"dye:yellow"
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:shutter_yellow",
burntime = 30,
})
--
minetest.register_craft( {
type = "shapeless",
output = "homedecor:shutter_forest_green 4",
recipe = {
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"dye:dark_green"
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:shutter_forest_green",
burntime = 30,
})
--
minetest.register_craft( {
type = "shapeless",
output = "homedecor:shutter_light_blue 4",
recipe = {
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"unifieddyes:light_blue"
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:shutter_light_blue",
burntime = 30,
})
minetest.register_craft( {
type = "shapeless",
output = "homedecor:shutter_violet 4",
recipe = {
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"homedecor:shutter_oak",
"dye:violet"
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:shutter_violet",
burntime = 30,
})
--
minetest.register_craft( { minetest.register_craft( {
output = "homedecor:drawer_small", output = "homedecor:drawer_small",
recipe = { recipe = {
@ -1046,26 +849,23 @@ minetest.register_craft( {
-- Curtains -- Curtains
local curtaincolors = {
"red",
"green",
"blue",
"white",
"pink",
"violet"
}
for c in ipairs(curtaincolors) do
local color = curtaincolors[c]
minetest.register_craft( { minetest.register_craft( {
output = "homedecor:curtain_"..color.." 3", output = "homedecor:curtain_closed 4",
recipe = { recipe = {
{ "wool:"..color, "", ""}, { "wool:white", "", ""},
{ "wool:"..color, "", ""}, { "wool:white", "", ""},
{ "wool:"..color, "", ""}, { "wool:white", "", ""},
},
})
minetest.register_craft( {
output = "homedecor:curtain_closed 4",
recipe = {
{ "cottages:wool", "", ""},
{ "cottages:wool", "", ""},
{ "cottages:wool", "", ""},
}, },
}) })
end
local mats = { local mats = {
{ "brass", "homedecor:pole_brass" }, { "brass", "homedecor:pole_brass" },
@ -1214,7 +1014,7 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = "homedecor:refrigerator_steel", output = "homedecor:refrigerator_steel",
recipe = { recipe = {
{"default:steel_ingot", "homedecor:glowlight_small_cube_white", "default:steel_ingot", }, {"default:steel_ingot", "homedecor:glowlight_small_cube", "default:steel_ingot", },
{"default:steel_ingot", "default:copperblock", "default:steel_ingot", }, {"default:steel_ingot", "default:copperblock", "default:steel_ingot", },
{"default:steel_ingot", "default:clay", "default:steel_ingot", }, {"default:steel_ingot", "default:clay", "default:steel_ingot", },
} }
@ -1390,73 +1190,10 @@ minetest.register_craft( {
}, },
}) })
-- yellow glowlights -- glowlights
minetest.register_craft({ minetest.register_craft({
output = "homedecor:glowlight_half_yellow 6", output = "homedecor:glowlight_half 6",
recipe = {
{"default:glass", "homedecor:power_crystal", "default:glass", },
}
})
minetest.register_craft({
output = "homedecor:glowlight_half_yellow 6",
recipe = {
{"moreblocks:super_glow_glass", "moreblocks:glow_glass", "moreblocks:super_glow_glass", },
}
})
minetest.register_craft({
output = "homedecor:glowlight_quarter_yellow 6",
recipe = {
{"homedecor:glowlight_half_yellow", "homedecor:glowlight_half_yellow", "homedecor:glowlight_half_yellow", },
}
})
minetest.register_craft({
output = "homedecor:glowlight_small_cube_yellow 16",
recipe = {
{"default:glass" },
{"homedecor:power_crystal" },
}
})
minetest.register_craft({
output = "homedecor:glowlight_small_cube_yellow 16",
recipe = {
{"moreblocks:glow_glass" },
{"moreblocks:super_glow_glass" },
}
})
minetest.register_craft({
output = "homedecor:glowlight_small_cube_yellow 4",
recipe = {
{"homedecor:glowlight_half_yellow" },
}
})
minetest.register_craft({
output = "homedecor:glowlight_half_yellow",
recipe = {
{"homedecor:glowlight_small_cube_yellow","homedecor:glowlight_small_cube_yellow"},
{"homedecor:glowlight_small_cube_yellow","homedecor:glowlight_small_cube_yellow"}
}
})
minetest.register_craft({
output = "homedecor:glowlight_half_yellow",
type = "shapeless",
recipe = {
"homedecor:glowlight_quarter_yellow",
"homedecor:glowlight_quarter_yellow"
}
})
-- white
minetest.register_craft({
output = "homedecor:glowlight_half_white 6",
recipe = { recipe = {
{ "dye:white", "dye:white", "dye:white" }, { "dye:white", "dye:white", "dye:white" },
{ "default:glass", "homedecor:power_crystal", "default:glass", }, { "default:glass", "homedecor:power_crystal", "default:glass", },
@ -1464,7 +1201,7 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:glowlight_half_white 6", output = "homedecor:glowlight_half 6",
recipe = { recipe = {
{ "dye:white", "dye:white", "dye:white" }, { "dye:white", "dye:white", "dye:white" },
{"moreblocks:super_glow_glass", "moreblocks:glow_glass", "moreblocks:super_glow_glass", }, {"moreblocks:super_glow_glass", "moreblocks:glow_glass", "moreblocks:super_glow_glass", },
@ -1472,24 +1209,14 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", output = "homedecor:glowlight_quarter 6",
output = "homedecor:glowlight_half_white 2",
recipe = { recipe = {
"dye:white", {"homedecor:glowlight_half", "homedecor:glowlight_half", "homedecor:glowlight_half", },
"homedecor:glowlight_half_yellow",
"homedecor:glowlight_half_yellow",
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:glowlight_quarter_white 6", output = "homedecor:glowlight_small_cube 8",
recipe = {
{"homedecor:glowlight_half_white", "homedecor:glowlight_half_white", "homedecor:glowlight_half_white", },
}
})
minetest.register_craft({
output = "homedecor:glowlight_small_cube_white 8",
recipe = { recipe = {
{ "dye:white" }, { "dye:white" },
{ "default:glass" }, { "default:glass" },
@ -1498,7 +1225,7 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:glowlight_small_cube_white 8", output = "homedecor:glowlight_small_cube 8",
recipe = { recipe = {
{"dye:white" }, {"dye:white" },
{"moreblocks:super_glow_glass" }, {"moreblocks:super_glow_glass" },
@ -1506,26 +1233,26 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:glowlight_small_cube_white 4", output = "homedecor:glowlight_small_cube 4",
recipe = { recipe = {
{"homedecor:glowlight_half_white" }, {"homedecor:glowlight_half" },
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:glowlight_half_white", output = "homedecor:glowlight_half",
recipe = { recipe = {
{"homedecor:glowlight_small_cube_white","homedecor:glowlight_small_cube_white"}, {"homedecor:glowlight_small_cube","homedecor:glowlight_small_cube"},
{"homedecor:glowlight_small_cube_white","homedecor:glowlight_small_cube_white"} {"homedecor:glowlight_small_cube","homedecor:glowlight_small_cube"}
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:glowlight_half_white", output = "homedecor:glowlight_half",
type = "shapeless", type = "shapeless",
recipe = { recipe = {
"homedecor:glowlight_quarter_white", "homedecor:glowlight_quarter",
"homedecor:glowlight_quarter_white" "homedecor:glowlight_quarter"
} }
}) })
@ -1571,15 +1298,7 @@ minetest.register_craft( {
-- other types of fences -- other types of fences
minetest.register_craft( { 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" },
},
})
minetest.register_craft( {
output = "homedecor:fence_wrought_iron_2 2",
recipe = { recipe = {
{ "homedecor:pole_wrought_iron", "default:iron_lump" }, { "homedecor:pole_wrought_iron", "default:iron_lump" },
{ "homedecor:pole_wrought_iron", "default:iron_lump" }, { "homedecor:pole_wrought_iron", "default:iron_lump" },
@ -2213,7 +1932,7 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = "homedecor:fishtank", output = "homedecor:fishtank",
recipe = { recipe = {
{ "homedecor:plastic_sheeting", "homedecor:glowlight_small_cube_white", "homedecor:plastic_sheeting" }, { "homedecor:plastic_sheeting", "homedecor:glowlight_small_cube", "homedecor:plastic_sheeting" },
{ "default:glass", "bucket:bucket_water", "default:glass" }, { "default:glass", "bucket:bucket_water", "default:glass" },
{ "default:glass", "building_blocks:gravel_spread", "default:glass" }, { "default:glass", "building_blocks:gravel_spread", "default:glass" },
}, },
@ -2349,7 +2068,7 @@ minetest.register_craft({
recipe = { recipe = {
{ "homedecor:motor" }, { "homedecor:motor" },
{ "homedecor:fan_blades" }, { "homedecor:fan_blades" },
{ "homedecor:glowlight_small_cube_white" } { "homedecor:glowlight_small_cube" }
} }
}) })
@ -2358,7 +2077,7 @@ minetest.register_craft({
recipe = { recipe = {
{ "technic:motor" }, { "technic:motor" },
{ "homedecor:fan_blades" }, { "homedecor:fan_blades" },
{ "homedecor:glowlight_small_cube_white" } { "homedecor:glowlight_small_cube" }
} }
}) })
@ -2500,30 +2219,29 @@ minetest.register_craft( {
-- bathroom/kitchen tiles -- bathroom/kitchen tiles
local color_pairings = {
{ "grey", "white", "1" },
{ "dark_grey", "white", "2" },
{ "black", "white", "3" },
{ "black", "dark_grey", "4" },
{ "red", "white", "red" },
{ "green", "white", "green" },
{ "blue", "white", "blue" },
{ "yellow", "white", "yellow" },
{ "brown", "white", "tan" }
}
for i in ipairs(color_pairings) do
local dye1 = color_pairings[i][1]
local dye2 = color_pairings[i][2]
local result = color_pairings[i][3]
minetest.register_craft( { minetest.register_craft( {
output = "homedecor:tiles_"..result.." 2", output = "homedecor:bathroom_tiles_light 4",
recipe = { recipe = {
{ "group:marble", "dye:"..dye1 }, { "group:marble", "group:marble", "" },
{ "group:marble", "dye:"..dye2 } { "group:marble", "group:marble", "dye:white" }
},
})
minetest.register_craft( {
output = "homedecor:bathroom_tiles_medium 4",
recipe = {
{ "group:marble", "group:marble", "" },
{ "group:marble", "group:marble", "dye:grey" }
},
})
minetest.register_craft( {
output = "homedecor:bathroom_tiles_dark 4",
recipe = {
{ "group:marble", "group:marble", "" },
{ "group:marble", "group:marble", "dye:dark_grey" }
}, },
}) })
end
-- misc electrical -- misc electrical
@ -2749,40 +2467,22 @@ minetest.register_craft( {
}, },
}) })
local bedcolors = {
{ "red", "red"},
{ "orange", "orange" },
{ "yellow", "yellow"},
{ "green", "dark_green"},
{ "blue", "blue"},
{ "violet", "violet"},
{ "pink", "pink"},
{ "darkgrey", "dark_grey"},
{ "brown", "brown" },
}
for c in ipairs(bedcolors) do
local color = bedcolors[c][1]
local woolcolor = bedcolors[c][2]
minetest.register_craft( { minetest.register_craft( {
output = "homedecor:bed_"..color.."_regular", output = "homedecor:bed_regular",
recipe = { recipe = {
{ "group:stick", "", "group:stick" }, { "group:stick", "", "group:stick" },
{ "wool:white", "wool:"..woolcolor, "wool:"..woolcolor }, { "wool:white", "wool:white", "wool:white" },
{ "group:wood", "", "group:wood" }, { "group:wood", "", "group:wood" },
}, },
}) })
minetest.register_craft( { minetest.register_craft( {
output = "homedecor:bed_"..color.."_kingsize", output = "homedecor:bed_kingsize",
recipe = { recipe = {
{ "homedecor:bed_"..color.."_regular", "homedecor:bed_"..color.."_regular" } { "homedecor:bed_regular", "homedecor:bed_regular" }
}, },
}) })
end
minetest.register_craft( { minetest.register_craft( {
output = "homedecor:bottle_green", output = "homedecor:bottle_green",
recipe = { recipe = {
@ -3134,18 +2834,14 @@ for i in ipairs(picture_dyes) do
}) })
end end
local dlamp_colors = { "red","blue","green","violet" }
for _, color in ipairs(dlamp_colors) do
minetest.register_craft({ minetest.register_craft({
output = "homedecor:desk_lamp_"..color, output = "homedecor:desk_lamp 2",
recipe = { recipe = {
{ "", "homedecor:steel_strip", "homedecor:glowlight_small_cube_white" }, { "", "default:steel_ingot", "homedecor:glowlight_small_cube" },
{ "", "homedecor:copper_wire", "" }, { "", "homedecor:steel_strip", "" },
{ "homedecor:plastic_sheeting", "dye:"..color, "homedecor:plastic_sheeting" }, { "homedecor:plastic_sheeting", "homedecor:copper_wire", "homedecor:plastic_sheeting" },
}, },
}) })
end
minetest.register_craft({ minetest.register_craft({
output = "homedecor:hanging_lantern 2", output = "homedecor:hanging_lantern 2",
@ -3224,7 +2920,7 @@ minetest.register_craft({
recipe = { recipe = {
{ "", "technic:brass_ingot", ""}, { "", "technic:brass_ingot", ""},
{ "", "homedecor:chainlink_brass", ""}, { "", "homedecor:chainlink_brass", ""},
{ "default:glass", "homedecor:glowlight_small_cube_white", "default:glass"} { "default:glass", "homedecor:glowlight_small", "default:glass"}
}, },
}) })
@ -3232,7 +2928,7 @@ minetest.register_craft({
output = "homedecor:ceiling_lamp", output = "homedecor:ceiling_lamp",
recipe = { recipe = {
{ "", "chains:chain_top_brass", ""}, { "", "chains:chain_top_brass", ""},
{ "default:glass", "homedecor:glowlight_small_cube_white", "default:glass"} { "default:glass", "homedecor:glowlight_small", "default:glass"}
}, },
}) })

View File

@ -1,11 +1,12 @@
default default
unifieddyes
homedecor_i18n
building_blocks? building_blocks?
signs_lib? signs_lib?
moreblocks? moreblocks?
technic? technic?
dye? dye?
bees? bees?
intllib?
bucket? bucket?
beds? beds?
flowers? flowers?

View File

@ -1,6 +1,6 @@
-- Node definitions for Homedecor doors -- Node definitions for Homedecor doors
local S = homedecor.gettext local S = homedecor_i18n.gettext
local function N_(x) return x end local function N_(x) return x end
@ -297,6 +297,8 @@ local gate_list = {
{ "picket_white", S("White Picket Fence Gate") }, { "picket_white", S("White Picket Fence Gate") },
{ "barbed_wire", S("Barbed Wire Fence Gate") }, { "barbed_wire", S("Barbed Wire Fence Gate") },
{ "chainlink", S("Chainlink Fence Gate") }, { "chainlink", S("Chainlink Fence Gate") },
{ "half_door", S("\"Half\" Door") },
{ "half_door_white", S("\"Half\" Door (white)") }
} }
local gate_models_closed = { local gate_models_closed = {
@ -315,7 +317,12 @@ local gate_models_closed = {
{ -8/16, 7/16, 13/32, 8/16, 8/16, 15/32 }, -- top piece { -8/16, 7/16, 13/32, 8/16, 8/16, 15/32 }, -- top piece
{ -8/16, -8/16, 13/32, 8/16, -7/16, 15/32 }, -- bottom piece { -8/16, -8/16, 13/32, 8/16, -7/16, 15/32 }, -- bottom piece
{ -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }, -- the chainlink itself { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }, -- the chainlink itself
{ -8/16, -3/16, 6/16, -6/16, 3/16, 8/16 }} -- the lump representing the lock { -8/16, -3/16, 6/16, -6/16, 3/16, 8/16 }}, -- the lump representing the lock
{{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, -- the whole door :P
{{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, -- the whole door :P
} }
local gate_models_open = { local gate_models_open = {
@ -334,7 +341,11 @@ local gate_models_open = {
{ 13/32, 7/16, -8/16, 15/32, 8/16, 8/16 }, -- top piece { 13/32, 7/16, -8/16, 15/32, 8/16, 8/16 }, -- top piece
{ 13/32, -8/16, -8/16, 15/32, -7/16, 8/16 }, -- bottom piece { 13/32, -8/16, -8/16, 15/32, -7/16, 8/16 }, -- bottom piece
{ 7/16, -8/16, -8/16, 7/16, 8/16, 8/16 }, -- the chainlink itself { 7/16, -8/16, -8/16, 7/16, 8/16, 8/16 }, -- the chainlink itself
{ 6/16, -3/16, -8/16, 8/16, 3/16, -6/16 }} -- the lump representing the lock { 6/16, -3/16, -8/16, 8/16, 3/16, -6/16 }}, -- the lump representing the lock
{{ 6/16, -8/16, -8/16, 8/16, 8/16, 8/16 }}, -- the whole door :P
{{ 6/16, -8/16, -8/16, 8/16, 8/16, 8/16 }}, -- the whole door :P
} }
for i, g in ipairs(gate_list) do for i, g in ipairs(gate_list) do
@ -409,8 +420,8 @@ for i, g in ipairs(gate_list) do
def.selection_box.fixed = { 0.4, -0.5, -0.5, 0.5, 0.5, 0.5 } def.selection_box.fixed = { 0.4, -0.5, -0.5, 0.5, 0.5, 0.5 }
def.node_box.fixed = gate_models_open[i] def.node_box.fixed = gate_models_open[i]
def.tiles = { def.tiles = {
tiles[1], tiles[1].."^[transformR90",
tiles[2], tiles[2].."^[transformR270",
tiles[6], tiles[6],
tiles[5], tiles[5],
tiles[4], tiles[4],
@ -527,7 +538,7 @@ minetest.register_node("homedecor:japanese_wall_top", {
drawtype = "mesh", drawtype = "mesh",
mesh = "homedecor_wall_japanese_top.obj", mesh = "homedecor_wall_japanese_top.obj",
tiles = { tiles = {
"homedecor_generic_wood_luxury.png", homedecor.lux_wood,
"homedecor_japanese_paper.png" "homedecor_japanese_paper.png"
}, },
paramtype = "light", paramtype = "light",
@ -543,7 +554,7 @@ minetest.register_node("homedecor:japanese_wall_middle", {
drawtype = "mesh", drawtype = "mesh",
mesh = "homedecor_wall_japanese_middle.obj", mesh = "homedecor_wall_japanese_middle.obj",
tiles = { tiles = {
"homedecor_generic_wood_luxury.png", homedecor.lux_wood,
"homedecor_japanese_paper.png" "homedecor_japanese_paper.png"
}, },
paramtype = "light", paramtype = "light",
@ -559,7 +570,7 @@ minetest.register_node("homedecor:japanese_wall_bottom", {
drawtype = "mesh", drawtype = "mesh",
mesh = "homedecor_wall_japanese_bottom.obj", mesh = "homedecor_wall_japanese_bottom.obj",
tiles = { tiles = {
"homedecor_generic_wood_luxury.png", homedecor.lux_wood,
"homedecor_japanese_paper.png" "homedecor_japanese_paper.png"
}, },
paramtype = "light", paramtype = "light",
@ -595,7 +606,7 @@ homedecor.register("door_japanese_closed", {
description = S("Japanese-style door"), description = S("Japanese-style door"),
inventory_image = "homedecor_door_japanese_inv.png", inventory_image = "homedecor_door_japanese_inv.png",
tiles = { tiles = {
"homedecor_generic_wood_luxury.png", homedecor.lux_wood,
"homedecor_japanese_paper.png" "homedecor_japanese_paper.png"
}, },
mesh = "homedecor_door_japanese_closed.obj", mesh = "homedecor_door_japanese_closed.obj",
@ -618,7 +629,7 @@ homedecor.register("door_japanese_closed", {
homedecor.register("door_japanese_open", { homedecor.register("door_japanese_open", {
tiles = { tiles = {
"homedecor_generic_wood_luxury.png", homedecor.lux_wood,
"homedecor_japanese_paper.png" "homedecor_japanese_paper.png"
}, },
mesh = "homedecor_door_japanese_open.obj", mesh = "homedecor_door_japanese_open.obj",

View File

@ -1,5 +1,8 @@
local S = homedecor_i18n.gettext
homedecor.register("power_outlet", { homedecor.register("power_outlet", {
description = "Power Outlet", description = S("Power Outlet"),
tiles = { tiles = {
"homedecor_outlet_edges.png", "homedecor_outlet_edges.png",
"homedecor_outlet_edges.png", "homedecor_outlet_edges.png",
@ -26,7 +29,7 @@ homedecor.register("power_outlet", {
}) })
homedecor.register("light_switch", { homedecor.register("light_switch", {
description = "Light switch", description = S("Light switch"),
tiles = { tiles = {
"homedecor_light_switch_edges.png", "homedecor_light_switch_edges.png",
"homedecor_light_switch_edges.png", "homedecor_light_switch_edges.png",
@ -58,7 +61,7 @@ homedecor.register("light_switch", {
homedecor.register("doorbell", { homedecor.register("doorbell", {
tiles = { "homedecor_doorbell.png" }, tiles = { "homedecor_doorbell.png" },
inventory_image = "homedecor_doorbell_inv.png", inventory_image = "homedecor_doorbell_inv.png",
description = "Doorbell", description = S("Doorbell"),
groups = {snappy=3}, groups = {snappy=3},
walkable = false, walkable = false,
node_box = { node_box = {
@ -68,7 +71,7 @@ homedecor.register("doorbell", {
{-0.03125, 0.0625, 0.45, 0.03125, 0.125, 0.4675}, -- NodeBox2 {-0.03125, 0.0625, 0.45, 0.03125, 0.125, 0.4675}, -- NodeBox2
} }
}, },
on_punch = function(pos, node, puncher, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
minetest.sound_play("homedecor_doorbell", { minetest.sound_play("homedecor_doorbell", {
pos = pos, pos = pos,
gain = 1.0, gain = 1.0,

View File

@ -1,6 +1,6 @@
-- Various home electronics -- Various home electronics
local S = homedecor.gettext local S = homedecor_i18n.gettext
homedecor.register("speaker", { homedecor.register("speaker", {
description = S("Large Stereo Speaker"), description = S("Large Stereo Speaker"),
@ -11,7 +11,7 @@ homedecor.register("speaker", {
}, },
groups = { snappy = 3 }, groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_punch = function(pos, node, puncher, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
minetest.set_node(pos, {name = "homedecor:speaker_open", param2 = node.param2}) minetest.set_node(pos, {name = "homedecor:speaker_open", param2 = node.param2})
end end
}) })
@ -23,11 +23,11 @@ homedecor.register("speaker_open", {
"homedecor_speaker_sides.png", "homedecor_speaker_sides.png",
"homedecor_speaker_driver.png", "homedecor_speaker_driver.png",
"homedecor_speaker_open_front.png", "homedecor_speaker_open_front.png",
"homedecor_generic_metal_black.png" { name = "homedecor_generic_metal.png", color = homedecor.color_black }
}, },
groups = { snappy = 3, not_in_creative_inventory=1 }, groups = { snappy = 3, not_in_creative_inventory=1 },
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_punch = function(pos, node, puncher, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
minetest.set_node(pos, {name = "homedecor:speaker", param2 = node.param2}) minetest.set_node(pos, {name = "homedecor:speaker", param2 = node.param2})
end end
}) })

View File

@ -1,5 +1,5 @@
local S = homedecor.gettext local S = homedecor_i18n.gettext
local function N_(x) return x end local function N_(x) return x end
@ -12,7 +12,7 @@ homedecor.register("barbecue", {
description = S("Barbecue"), description = S("Barbecue"),
mesh = "homedecor_barbecue.obj", mesh = "homedecor_barbecue.obj",
tiles = { tiles = {
"homedecor_generic_metal_black.png", { name = "homedecor_generic_metal.png" , color = homedecor.color_black },
{ name = "homedecor_embers.png", { name = "homedecor_embers.png",
animation={ animation={
type="vertical_frames", type="vertical_frames",
@ -319,7 +319,7 @@ homedecor.register("well", {
mesh = "homedecor_well.obj", mesh = "homedecor_well.obj",
tiles = { tiles = {
"homedecor_rope_texture.png", "homedecor_rope_texture.png",
"homedecor_generic_metal_black.png^[brighten", { name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
"default_water.png", "default_water.png",
"default_cobble.png", "default_cobble.png",
"default_wood.png", "default_wood.png",

View File

@ -14,9 +14,7 @@ if signs_modpath then
sign_post_model = signs_lib.sign_post_model.nodebox sign_post_model = signs_lib.sign_post_model.nodebox
end end
local S = homedecor.gettext local S = homedecor_i18n.gettext
local function N_(x) return x end
local materials = { local materials = {
{ S("brass"), "brass" }, { S("brass"), "brass" },

View File

@ -1,8 +1,10 @@
local S = homedecor_i18n.gettext
homedecor.register("coatrack_wallmount", { homedecor.register("coatrack_wallmount", {
tiles = { homedecor.plain_wood }, tiles = { homedecor.plain_wood },
inventory_image = "homedecor_coatrack_wallmount_inv.png", inventory_image = "homedecor_coatrack_wallmount_inv.png",
description = "Coatrack (wallmounted)", description = S("Wall-mounted coat rack"),
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
node_box = { node_box = {
@ -28,7 +30,7 @@ homedecor.register("coat_tree", {
"homedecor_generic_wood_old.png" "homedecor_generic_wood_old.png"
}, },
inventory_image = "homedecor_coatrack_inv.png", inventory_image = "homedecor_coatrack_inv.png",
description = "Coat tree", description = S("Coat tree"),
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
expand = { top="placeholder" }, expand = { top="placeholder" },
@ -40,9 +42,16 @@ homedecor.register("coat_tree", {
on_rotate = screwdriver.rotate_simple on_rotate = screwdriver.rotate_simple
}) })
for _, color in pairs({ "green", "brown", "grey" }) do local mat_colors = {
{ "green", S("Green welcome mat") },
{ "brown", S("Brown welcome mat") },
{ "grey", S("Grey welcome mat") },
}
for _, mat in ipairs(mat_colors) do
local color, desc = unpack(mat)
homedecor.register("welcome_mat_"..color, { homedecor.register("welcome_mat_"..color, {
description = "Welcome Mat ("..color..")", description = desc,
tiles = { tiles = {
"homedecor_welcome_mat_"..color..".png", "homedecor_welcome_mat_"..color..".png",
"homedecor_welcome_mat_bottom.png", "homedecor_welcome_mat_bottom.png",

View File

@ -1,4 +1,5 @@
local S = homedecor.gettext
local S = homedecor_i18n.gettext
local table_colors = { local table_colors = {
{ "", S("Table"), homedecor.plain_wood }, { "", S("Table"), homedecor.plain_wood },
@ -31,16 +32,6 @@ for _, t in ipairs(table_colors) do
}) })
end end
local chaircolors = {
{ "", S("plain") },
{ "black", S("black") },
{ "red", S("red") },
{ "pink", S("pink") },
{ "violet", S("violet") },
{ "blue", S("blue") },
{ "dark_green", S("dark green") },
}
local kc_cbox = { local kc_cbox = {
type = "fixed", type = "fixed",
fixed = { -0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125 }, fixed = { -0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125 },
@ -54,33 +45,21 @@ local ac_cbox = {
} }
} }
for _, t in ipairs(chaircolors) do homedecor.register("kitchen_chair_wood", {
description = S("Kitchen chair"),
local woolcolor, colordesc = unpack(t) mesh = "homedecor_kitchen_chair.obj",
local color = woolcolor tiles = {
local chairtiles
if woolcolor == "" then
chairtiles = {
homedecor.plain_wood, homedecor.plain_wood,
homedecor.plain_wood homedecor.plain_wood
} },
else inventory_image = "homedecor_chair_wood_inv.png",
color = "_"..woolcolor paramtype2 = "wallmounted",
chairtiles = {
homedecor.plain_wood,
"wool"..color..".png",
}
end
homedecor.register("chair"..color, {
description = S("Kitchen chair (@1)", colordesc),
mesh = "homedecor_kitchen_chair.obj",
tiles = chairtiles,
selection_box = kc_cbox, selection_box = kc_cbox,
collision_box = kc_cbox, collision_box = kc_cbox,
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
after_place_node = unifieddyes.fix_rotation_nsew,
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
pos.y = pos.y+0 -- where do I put my ass ? pos.y = pos.y+0 -- where do I put my ass ?
homedecor.sit(pos, node, clicker) homedecor.sit(pos, node, clicker)
@ -88,30 +67,54 @@ for _, t in ipairs(chaircolors) do
end end
}) })
if color ~= "" then homedecor.register("kitchen_chair_padded", {
homedecor.register("armchair"..color, { description = S("Kitchen chair"),
description = S("Armchair (@1)", colordesc), mesh = "homedecor_kitchen_chair.obj",
mesh = "forniture_armchair.obj",
tiles = { tiles = {
"wool"..color..".png", homedecor.plain_wood,
"wool_dark_grey.png", "wool_white.png",
"default_wood.png"
}, },
groups = {snappy=3}, inventory_image = "homedecor_chair_padded_inv.png",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = kc_cbox,
collision_box = kc_cbox,
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
node_box = ac_cbox 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)
pos.y = pos.y+0 -- where do I put my ass ?
homedecor.sit(pos, node, clicker)
return itemstack
end
}) })
minetest.register_craft({ homedecor.register("armchair", {
output = "homedecor:armchair"..color.." 2", description = S("Armchair"),
recipe = { mesh = "forniture_armchair.obj",
{ "wool:"..woolcolor,""}, tiles = {
{ "group:wood","group:wood" }, "wool_white.png",
{ "wool:"..woolcolor,"wool:"..woolcolor }, { name = "wool_dark_grey.png", color = 0xffffffff },
{ name = "default_wood.png", color = 0xffffffff }
}, },
inventory_image = "homedecor_armchair_inv.png",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
groups = {snappy=3, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(),
node_box = ac_cbox,
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,
}) })
end
end
local ob_cbox = { local ob_cbox = {
type = "fixed", type = "fixed",
@ -160,3 +163,90 @@ minetest.register_alias("homedecor:armchair", "homedecor:armchair_black")
minetest.register_alias('table', 'homedecor:table') minetest.register_alias('table', 'homedecor:table')
minetest.register_alias('chair', 'homedecor:chair') minetest.register_alias('chair', 'homedecor:chair')
minetest.register_alias('armchair', 'homedecor:armchair') minetest.register_alias('armchair', 'homedecor:armchair')
-- conversion to param2 colorization
homedecor.old_static_chairs = {}
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
table.insert(homedecor.old_static_chairs, "homedecor:chair")
minetest.register_lbm({
name = "homedecor:convert_chairs",
label = "Convert homedecor chairs to use param2 color",
run_at_every_load = false,
nodenames = homedecor.old_static_chairs,
action = function(pos, node)
local name = node.name
local paletteidx = 0
local color
local a,b = string.find(name, "_")
if a then
color = string.sub(name, a+1)
if color == "blue" then
color = "medium_blue"
elseif color == "violet" then
color = "medium_violet"
elseif color == "red" then
color = "medium_red"
elseif color == "black" then
color = "dark_grey"
end
paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted")
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
local param2 = paletteidx + new_fdir
local newname = "homedecor:armchair"
print(name, dump(a), dump(b), dump(color).."("..dump(paletteidx)..")", dump(param2))
if node.name == "homedecor:chair" then
newname = "homedecor:kitchen_chair_wood"
elseif string.find(node.name, "homedecor:chair_") then
newname = "homedecor:kitchen_chair_padded"
end
minetest.set_node(pos, { name = newname, param2 = param2 })
local meta = minetest.get_meta(pos)
if color then
meta:set_string("dye", "unifieddyes:"..color)
end
end
})

View File

@ -1,9 +1,9 @@
local S = homedecor.gettext local S = homedecor_i18n.gettext
homedecor.register("bars", { homedecor.register("bars", {
description = S("Bars"), description = S("Bars"),
tiles = { "homedecor_generic_metal_black.png^[transformR270" }, tiles = { { name = "homedecor_generic_metal.png^[transformR270", color = homedecor.color_black } },
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -25,7 +25,7 @@ homedecor.register("bars", {
--L Binding Bars --L Binding Bars
homedecor.register("L_binding_bars", { homedecor.register("L_binding_bars", {
description = S("Binding Bars"), description = S("Binding Bars"),
tiles = { "homedecor_generic_metal_black.png^[transformR270" }, tiles = { { name = "homedecor_generic_metal.png^[transformR270", color = homedecor.color_black } },
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -50,7 +50,7 @@ local chain_cbox = {
homedecor.register("chains", { homedecor.register("chains", {
description = S("Chains"), description = S("Chains"),
mesh = "forniture_chains.obj", mesh = "forniture_chains.obj",
tiles = { "homedecor_generic_metal_black.png" }, tiles = { { name = "homedecor_generic_metal.png", color = homedecor.color_black } },
inventory_image="forniture_chains_inv.png", inventory_image="forniture_chains_inv.png",
selection_box = chain_cbox, selection_box = chain_cbox,
walkable = false, walkable = false,
@ -71,8 +71,8 @@ homedecor.register("torch_wall", {
length=1.0, length=1.0,
}, },
}, },
"homedecor_generic_metal_black.png", { name = "homedecor_generic_metal.png", color = homedecor.color_black },
"homedecor_generic_metal_black.png^[brighten", { name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
"forniture_coal.png", "forniture_coal.png",
}, },
inventory_image="forniture_torch_inv.png", inventory_image="forniture_torch_inv.png",
@ -93,8 +93,12 @@ local wl_cbox = {
homedecor.register("wall_lamp", { homedecor.register("wall_lamp", {
description = S("Wall Lamp"), description = S("Wall Lamp"),
mesh = "homedecor_wall_lamp.obj", mesh = "homedecor_wall_lamp.obj",
tiles = {"homedecor_generic_metal_black.png^[brighten", "homedecor_generic_wood_luxury.png^[colorize:#000000:30", tiles = {
"homedecor_light.png", "homedecor_generic_metal_wrought_iron.png"}, { name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
homedecor.lux_wood,
"homedecor_light.png",
"homedecor_generic_metal_wrought_iron.png"
},
use_texture_alpha = true, use_texture_alpha = true,
inventory_image = "homedecor_wall_lamp_inv.png", inventory_image = "homedecor_wall_lamp_inv.png",
groups = {snappy=3}, groups = {snappy=3},

View File

@ -1,6 +1,6 @@
minetest.register_craft({ minetest.register_craft({
output = "homedecor:table", "homedecor:chair 2", output = "homedecor:table",
recipe = { recipe = {
{ "group:wood","group:wood", "group:wood" }, { "group:wood","group:wood", "group:wood" },
{ "group:stick", "", "group:stick" }, { "group:stick", "", "group:stick" },
@ -53,7 +53,7 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:chair 2", output = "homedecor:kitchen_chair_wood 2",
recipe = { recipe = {
{ "group:stick",""}, { "group:stick",""},
{ "group:wood","group:wood" }, { "group:wood","group:wood" },
@ -62,40 +62,34 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
type = "fuel", output = "homedecor:armchair 2",
recipe = "homedecor:chair", recipe = {
burntime = 15, { "wool:white",""},
{ "group:wood","group:wood" },
{ "wool:white","wool:white" },
},
}) })
local chaircolors = { "black", "red", "pink", "violet", "blue", "dark_green" }
for _, color in ipairs(chaircolors) do
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = "homedecor:chair_"..color, output = "homedecor:kitchen_chair_padded",
recipe = { recipe = {
"homedecor:chair", "homedecor:kitchen_chair_wood",
"wool:white", "wool:white",
"dye:"..color
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:chair_"..color,
recipe = {
"homedecor:chair",
"wool:"..color
}, },
}) })
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = "homedecor:chair_"..color, recipe = "homedecor:kitchen_chair_wood",
burntime = 15,
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:kitchen_chair_padded",
burntime = 15, burntime = 15,
}) })
end
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
@ -104,27 +98,9 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:table_lamp_white_off", output = "homedecor:standing_lamp_off",
recipe = { recipe = {
{"default:paper","default:torch" ,"default:paper"}, {"homedecor:table_lamp_off"},
{"","group:stick",""},
{"","stairs:slab_wood",""},
},
})
minetest.register_craft({
output = "homedecor:table_lamp_white_off",
recipe = {
{"default:paper","default:torch" ,"default:paper"},
{"","group:stick",""},
{"","moreblocks:slab_wood",""},
},
})
minetest.register_craft({
output = "homedecor:standing_lamp_white_off",
recipe = {
{"homedecor:table_lamp_white_off"},
{"group:stick"}, {"group:stick"},
{"group:stick"}, {"group:stick"},
}, },
@ -132,67 +108,37 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = "homedecor:table_lamp_white_off", recipe = "homedecor:table_lamp_off",
burntime = 10, burntime = 10,
}) })
local lamp_colors = { "blue", "green", "pink", "red", "violet" }
for _, color in ipairs(lamp_colors) do
minetest.register_craft({ minetest.register_craft({
output = "homedecor:table_lamp_"..color.."_off", output = "homedecor:table_lamp_off",
recipe = { recipe = {
{"wool:"..color,"default:torch" ,"wool:"..color}, { "wool:white", "default:torch", "wool:white"},
{ "", "group:stick", ""}, { "", "group:stick", ""},
{ "", "stairs:slab_wood", "" }, { "", "stairs:slab_wood", "" },
}, },
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:table_lamp_"..color.."_off", output = "homedecor:table_lamp_off",
recipe = { recipe = {
{"wool:"..color,"default:torch" ,"wool:"..color}, { "cottages:wool", "default:torch", "cottages:wool"},
{ "", "group:stick", ""}, { "", "group:stick", ""},
{"","moreblocks:slab_wood",""}, { "", "stairs:slab_wood", "" },
}, },
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", output = "homedecor:standing_lamp_off",
output = "homedecor:table_lamp_"..color.."_off",
recipe = { recipe = {
"dye:"..color, { "homedecor:table_lamp_off"},
"homedecor:table_lamp_off",
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table_lamp_"..color.."_off",
burntime = 10,
})
minetest.register_craft({
output = "homedecor:standing_lamp_"..color.."_off",
recipe = {
{"homedecor:table_lamp_"..color.."_off"},
{ "group:stick"}, { "group:stick"},
{ "group:stick"}, { "group:stick"},
}, },
}) })
minetest.register_craft({
type = "shapeless",
output = "homedecor:standing_lamp_"..color.."_off",
recipe = {
"homedecor:standing_lamp_off",
"dye:"..color
},
})
end
minetest.register_craft({ minetest.register_craft({
output = "homedecor:toilet", output = "homedecor:toilet",
recipe = { recipe = {
@ -237,6 +183,24 @@ minetest.register_craft({
}, },
}) })
minetest.register_craft({
output = "homedecor:bathtub_clawfoot_brass_taps",
recipe = {
{ "homedecor:taps_brass", "", "" },
{ "group:marble", "", "group:marble" },
{"default:steel_ingot", "group:marble", "default:steel_ingot"},
},
})
minetest.register_craft({
output = "homedecor:bathtub_clawfoot_chrome_taps",
recipe = {
{ "homedecor:taps", "", "" },
{ "group:marble", "", "group:marble" },
{"default:steel_ingot", "group:marble", "default:steel_ingot"},
},
})
minetest.register_craft({ minetest.register_craft({
output = "homedecor:bars 6", output = "homedecor:bars 6",
recipe = { recipe = {

View File

@ -1,4 +1,6 @@
local S = homedecor_i18n.gettext
local cutlery_cbox = { local cutlery_cbox = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -12,7 +14,7 @@ homedecor.register("cutlery_set", {
mesh = "homedecor_cutlery_set.obj", mesh = "homedecor_cutlery_set.obj",
tiles = { "homedecor_cutlery_set.png" }, tiles = { "homedecor_cutlery_set.png" },
inventory_image = "homedecor_cutlery_set_inv.png", inventory_image = "homedecor_cutlery_set_inv.png",
description = "Cutlery set", description = S("Cutlery set"),
groups = {snappy=3}, groups = {snappy=3},
selection_box = cutlery_cbox, selection_box = cutlery_cbox,
walkable = false, walkable = false,
@ -33,14 +35,19 @@ local fbottle_cbox = {
} }
} }
local bottle_colors = {"brown", "green"} local bottle_colors = {
{ "brown", S("Brown bottle"), S("Four brown bottles") },
{ "green", S("Green bottle"), S("Four green bottles") },
}
for _, b in ipairs(bottle_colors) do for _, b in ipairs(bottle_colors) do
homedecor.register("bottle_"..b, { local name, desc, desc4 = unpack(b)
tiles = { "homedecor_bottle_"..b..".png" },
inventory_image = "homedecor_bottle_"..b.."_inv.png", homedecor.register("bottle_"..name, {
description = "Bottle ("..b..")", tiles = { "homedecor_bottle_"..name..".png" },
inventory_image = "homedecor_bottle_"..name.."_inv.png",
description = desc,
mesh = "homedecor_bottle.obj", mesh = "homedecor_bottle.obj",
walkable = false, walkable = false,
groups = {snappy=3}, groups = {snappy=3},
@ -50,13 +57,13 @@ for _, b in ipairs(bottle_colors) do
-- 4-bottle sets -- 4-bottle sets
homedecor.register("4_bottles_"..b, { homedecor.register("4_bottles_"..name, {
tiles = { tiles = {
"homedecor_bottle_"..b..".png", "homedecor_bottle_"..name..".png",
"homedecor_bottle_"..b..".png" "homedecor_bottle_"..name..".png"
}, },
inventory_image = "homedecor_4_bottles_"..b.."_inv.png", inventory_image = "homedecor_4_bottles_"..name.."_inv.png",
description = "Four "..b.." bottles", description = desc4,
mesh = "homedecor_4_bottles.obj", mesh = "homedecor_4_bottles.obj",
walkable = false, walkable = false,
groups = {snappy=3}, groups = {snappy=3},
@ -71,7 +78,7 @@ homedecor.register("4_bottles_multi", {
"homedecor_bottle_green.png" "homedecor_bottle_green.png"
}, },
inventory_image = "homedecor_4_bottles_multi_inv.png", inventory_image = "homedecor_4_bottles_multi_inv.png",
description = "Four misc brown/green bottles", description = S("Four misc brown/green bottles"),
mesh = "homedecor_4_bottles.obj", mesh = "homedecor_4_bottles.obj",
groups = {snappy=3}, groups = {snappy=3},
walkable = false, walkable = false,
@ -81,7 +88,7 @@ homedecor.register("4_bottles_multi", {
local wine_cbox = homedecor.nodebox.slab_z(-0.75) local wine_cbox = homedecor.nodebox.slab_z(-0.75)
homedecor.register("wine_rack", { homedecor.register("wine_rack", {
description = "Wine Rack", description = S("Wine rack"),
mesh = "homedecor_wine_rack.obj", mesh = "homedecor_wine_rack.obj",
tiles = { tiles = {
"homedecor_generic_wood_red.png", "homedecor_generic_wood_red.png",
@ -98,7 +105,7 @@ homedecor.register("wine_rack", {
}) })
homedecor.register("dartboard", { homedecor.register("dartboard", {
description = "Dartboard", description = S("Dartboard"),
mesh = "homedecor_dartboard.obj", mesh = "homedecor_dartboard.obj",
tiles = { "homedecor_dartboard.png" }, tiles = { "homedecor_dartboard.png" },
inventory_image = "homedecor_dartboard_inv.png", inventory_image = "homedecor_dartboard_inv.png",
@ -114,11 +121,11 @@ homedecor.register("dartboard", {
}) })
homedecor.register("beer_tap", { homedecor.register("beer_tap", {
description = "Beer tap", description = S("Beer tap"),
mesh = "homedecor_beer_taps.obj", mesh = "homedecor_beer_taps.obj",
tiles = { tiles = {
"homedecor_generic_metal_bright.png", "homedecor_generic_metal_bright.png",
"homedecor_generic_metal_black.png", { name = "homedecor_generic_metal.png", color = homedecor.color_black }
}, },
inventory_image = "homedecor_beertap_inv.png", inventory_image = "homedecor_beertap_inv.png",
groups = { snappy=3 }, groups = { snappy=3 },
@ -127,19 +134,20 @@ homedecor.register("beer_tap", {
type = "fixed", type = "fixed",
fixed = { -0.25, -0.5, -0.4375, 0.25, 0.235, 0 } fixed = { -0.25, -0.5, -0.4375, 0.25, 0.235, 0 }
}, },
on_punch = function(pos, node, puncher, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local wielditem = puncher:get_wielded_item() local inv = clicker:get_inventory()
local inv = puncher:get_inventory()
local wieldname = wielditem:get_name() local wieldname = itemstack:get_name()
if wieldname == "vessels:drinking_glass" then if wieldname == "vessels:drinking_glass" then
if inv:room_for_item("main", "homedecor:beer_mug 1") then if inv:room_for_item("main", "homedecor:beer_mug 1") then
wielditem:take_item() itemstack:take_item()
puncher:set_wielded_item(wielditem) clicker:set_wielded_item(itemstack)
inv:add_item("main", "homedecor:beer_mug 1") inv:add_item("main", "homedecor:beer_mug 1")
minetest.chat_send_player(puncher:get_player_name(), "Ahh, a frosty cold beer - look in your inventory for it!") minetest.chat_send_player(clicker:get_player_name(),
S("Ahh, a frosty cold beer - look in your inventory for it!"))
else else
minetest.chat_send_player(puncher:get_player_name(), "No room in your inventory to add a beer mug!") minetest.chat_send_player(clicker:get_player_name(),
S("No room in your inventory to add a beer mug!"))
end end
end end
end end
@ -160,7 +168,7 @@ local beer_cbox = {
} }
homedecor.register("beer_mug", { homedecor.register("beer_mug", {
description = "Beer mug", description = S("Beer mug"),
drawtype = "mesh", drawtype = "mesh",
mesh = "homedecor_beer_mug.obj", mesh = "homedecor_beer_mug.obj",
tiles = { "homedecor_beer_mug.png" }, tiles = { "homedecor_beer_mug.png" },
@ -169,7 +177,24 @@ homedecor.register("beer_mug", {
walkable = false, walkable = false,
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
selection_box = beer_cbox, selection_box = beer_cbox,
on_use = minetest.item_eat(2) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory()
if not creative.is_enabled_for(user:get_player_name()) then
if inv:room_for_item("main", "vessels:drinking_glass 1") then
inv:add_item("main", "vessels:drinking_glass 1")
else
local pos = user:get_pos()
local dir = user:get_look_dir()
local fdir = minetest.dir_to_facedir(dir)
local pos_fwd = { x = pos.x + homedecor.fdir_to_fwd[fdir+1][1],
y = pos.y + 1,
z = pos.z + homedecor.fdir_to_fwd[fdir+1][2] }
minetest.add_item(pos_fwd, "vessels:drinking_glass 1")
end
minetest.do_item_eat(2, nil, itemstack, user, pointed_thing)
return itemstack
end
end
}) })
local svm_cbox = { local svm_cbox = {
@ -178,7 +203,7 @@ local svm_cbox = {
} }
homedecor.register("soda_machine", { homedecor.register("soda_machine", {
description = "Soda Vending Machine", description = S("Soda vending machine"),
mesh = "homedecor_soda_machine.obj", mesh = "homedecor_soda_machine.obj",
tiles = {"homedecor_soda_machine.png"}, tiles = {"homedecor_soda_machine.png"},
groups = {snappy=3}, groups = {snappy=3},
@ -187,21 +212,21 @@ homedecor.register("soda_machine", {
expand = { top="placeholder" }, expand = { top="placeholder" },
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_rotate = screwdriver.rotate_simple, on_rotate = screwdriver.rotate_simple,
on_punch = function(pos, node, puncher, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local wielditem = puncher:get_wielded_item() local wielditem = clicker:get_wielded_item()
local wieldname = wielditem:get_name() local wieldname = wielditem:get_name()
local fdir_to_fwd = { {0, -1}, {-1, 0}, {0, 1}, {1, 0} } local fdir_to_fwd = { {0, -1}, {-1, 0}, {0, 1}, {1, 0} }
local fdir = node.param2 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] } 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 if wieldname == "homedecor:coin" then
wielditem:take_item() wielditem:take_item()
puncher:set_wielded_item(wielditem) clicker:set_wielded_item(wielditem)
minetest.spawn_item(pos_drop, "homedecor:soda_can") minetest.spawn_item(pos_drop, "homedecor:soda_can")
minetest.sound_play("insert_coin", { minetest.sound_play("insert_coin", {
pos=pos, max_hear_distance = 5 pos=pos, max_hear_distance = 5
}) })
else else
minetest.chat_send_player(puncher:get_player_name(), "Please insert a coin in the machine.") minetest.chat_send_player(clicker:get_player_name(), S("Please insert a coin in the machine."))
end end
end end
}) })

View File

@ -1,4 +1,6 @@
local S = homedecor_i18n.gettext
-- vectors to place one node next to or behind another -- vectors to place one node next to or behind another
homedecor.fdir_to_right = { homedecor.fdir_to_right = {
@ -22,18 +24,37 @@ homedecor.fdir_to_fwd = {
{ -1, 0 }, { -1, 0 },
} }
local placeholder_node = "homedecor:expansion_placeholder" -- special case for wallmounted nodes
minetest.register_node(placeholder_node, {
description = "Expansion placeholder (you hacker you!)", homedecor.wall_fdir_to_right = {
groups = { not_in_creative_inventory=1 }, nil,
drawtype = "airlike", nil,
paramtype = "light", { -1, 0 },
walkable = false, { 1, 0 },
selection_box = { type = "fixed", fixed = { 0, 0, 0, 0, 0, 0 } }, { 0, -1 },
is_ground_content = false, { 0, 1 },
sunlight_propagates = true, }
buildable_to = false,
}) homedecor.wall_fdir_to_left = {
nil,
nil,
{ 1, 0 },
{ -1, 0 },
{ 0, 1 },
{ 0, -1 },
}
homedecor.wall_fdir_to_fwd = {
nil,
nil,
{ 0, -1 },
{ 0, 1 },
{ 1, 0 },
{ -1, 0 },
}
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 --- select which node was pointed at based on it being known, not ignored, buildable_to
-- returns nil if no node could be selected -- returns nil if no node could be selected
@ -63,7 +84,7 @@ local function is_buildable_to(placer_name, ...)
end end
-- place one or two nodes if and only if both can be placed -- 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 "" local placer_name = placer:get_player_name() or ""
if is_buildable_to(placer_name, pos, pos2) then if is_buildable_to(placer_name, pos, pos2) then
local lfdir = fdir or minetest.dir_to_facedir(placer:get_look_dir()) local lfdir = fdir or minetest.dir_to_facedir(placer:get_look_dir())
@ -80,7 +101,7 @@ local function stack(itemstack, placer, fdir, pos, def, pos2, node1, node2)
-- call after_place_node of the placed node if available -- call after_place_node of the placed node if available
local ctrl_node_def = minetest.registered_nodes[node1] local ctrl_node_def = minetest.registered_nodes[node1]
if ctrl_node_def and ctrl_node_def.after_place_node then 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 end
if not homedecor.expect_infinite_stacks then if not homedecor.expect_infinite_stacks then
@ -90,18 +111,18 @@ local function stack(itemstack, placer, fdir, pos, def, pos2, node1, node2)
return itemstack return itemstack
end end
local function rightclick_pointed_thing(pos, placer, itemstack) local function rightclick_pointed_thing(pos, placer, itemstack, pointed_thing)
local node = minetest.get_node_or_nil(pos) local node = minetest.get_node_or_nil(pos)
if not node then return false end if not node then return false end
local def = minetest.registered_nodes[node.name] local def = minetest.registered_nodes[node.name]
if not def or not def.on_rightclick then return false end if not def or not def.on_rightclick then return false end
return def.on_rightclick(pos, node, placer, itemstack) or itemstack return def.on_rightclick(pos, node, placer, itemstack, pointed_thing) or itemstack
end end
-- Stack one node above another -- Stack one node above another
-- leave the last argument nil if it's one 2m high node -- leave the last argument nil if it's one 2m high node
function homedecor.stack_vertically(itemstack, placer, pointed_thing, node1, node2) function homedecor.stack_vertically(itemstack, placer, pointed_thing, node1, node2)
local rightclick_result = rightclick_pointed_thing(pointed_thing.under, placer, itemstack) local rightclick_result = rightclick_pointed_thing(pointed_thing.under, placer, itemstack, pointed_thing)
if rightclick_result then return rightclick_result end if rightclick_result then return rightclick_result end
local pos, def = select_node(pointed_thing) local pos, def = select_node(pointed_thing)
@ -109,14 +130,14 @@ function homedecor.stack_vertically(itemstack, placer, pointed_thing, node1, nod
local top_pos = { x=pos.x, y=pos.y+1, z=pos.z } 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 end
-- Stack one door node above another -- Stack one door node above another
-- like homedecor.stack_vertically but tests first if it was placed as a right wing, then uses node1_right and node2_right instead -- like homedecor.stack_vertically but tests first if it was placed as a right wing, then uses node1_right and node2_right instead
function homedecor.stack_wing(itemstack, placer, pointed_thing, node1, node2, node1_right, node2_right) function homedecor.stack_wing(itemstack, placer, pointed_thing, node1, node2, node1_right, node2_right)
local rightclick_result = rightclick_pointed_thing(pointed_thing.under, placer, itemstack) local rightclick_result = rightclick_pointed_thing(pointed_thing.under, placer, itemstack, pointed_thing)
if rightclick_result then return rightclick_result end if rightclick_result then return rightclick_result end
local pos, def = select_node(pointed_thing) local pos, def = select_node(pointed_thing)
@ -131,11 +152,11 @@ function homedecor.stack_wing(itemstack, placer, pointed_thing, node1, node2, no
end end
local top_pos = { x=pos.x, y=pos.y+1, z=pos.z } 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 end
function homedecor.stack_sideways(itemstack, placer, pointed_thing, node1, node2, dir) function homedecor.stack_sideways(itemstack, placer, pointed_thing, node1, node2, dir)
local rightclick_result = rightclick_pointed_thing(pointed_thing.under, placer, itemstack) local rightclick_result = rightclick_pointed_thing(pointed_thing.under, placer, itemstack, pointed_thing)
if rightclick_result then return rightclick_result end if rightclick_result then return rightclick_result end
local pos, def = select_node(pointed_thing) local pos, def = select_node(pointed_thing)
@ -146,16 +167,17 @@ 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] } 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 end
function homedecor.bed_expansion(pos, placer, itemstack, pointed_thing, color) function homedecor.bed_expansion(pos, placer, itemstack, pointed_thing, trybunks)
local thisnode = minetest.get_node(pos) local thisnode = minetest.get_node(pos)
local fdir = thisnode.param2 local param2 = thisnode.param2
local fdir = param2 % 8
local fxd = homedecor.fdir_to_fwd[fdir+1][1] local fxd = homedecor.wall_fdir_to_fwd[fdir+1][1]
local fzd = homedecor.fdir_to_fwd[fdir+1][2] local fzd = homedecor.wall_fdir_to_fwd[fdir+1][2]
local forwardpos = {x=pos.x+fxd, y=pos.y, z=pos.z+fzd} local forwardpos = {x=pos.x+fxd, y=pos.y, z=pos.z+fzd}
local forwardnode = minetest.get_node(forwardpos) local forwardnode = minetest.get_node(forwardpos)
@ -164,67 +186,79 @@ function homedecor.bed_expansion(pos, placer, itemstack, pointed_thing, color)
local placer_name = placer:get_player_name() local placer_name = placer:get_player_name()
if not (def and def.buildable_to) then if not (def and def.buildable_to) then
minetest.chat_send_player( placer:get_player_name(), "Not enough room - the space for the headboard is occupied!" ) minetest.chat_send_player( placer:get_player_name(),
S("Not enough room - the space for the headboard is occupied!"))
minetest.set_node(pos, {name = "air"}) minetest.set_node(pos, {name = "air"})
return true return true
end end
if minetest.is_protected(forwardpos, placer_name) then if minetest.is_protected(forwardpos, placer_name) then
minetest.chat_send_player( placer:get_player_name(), "Someone already owns the spot where the headboard goes." ) minetest.chat_send_player( placer:get_player_name(),
S("Someone already owns the spot where the headboard goes."))
return true return true
end end
minetest.set_node(forwardpos, {name = "air"}) minetest.set_node(forwardpos, {name = "air"})
local lxd = homedecor.fdir_to_left[fdir+1][1] local lxd = homedecor.wall_fdir_to_left[fdir+1][1]
local lzd = homedecor.fdir_to_left[fdir+1][2] local lzd = homedecor.wall_fdir_to_left[fdir+1][2]
local leftpos = {x=pos.x+lxd, y=pos.y, z=pos.z+lzd} local leftpos = {x=pos.x+lxd, y=pos.y, z=pos.z+lzd}
local leftnode = minetest.get_node(leftpos) local leftnode = minetest.get_node(leftpos)
local rxd = homedecor.fdir_to_right[fdir+1][1] local rxd = homedecor.wall_fdir_to_right[fdir+1][1]
local rzd = homedecor.fdir_to_right[fdir+1][2] local rzd = homedecor.wall_fdir_to_right[fdir+1][2]
local rightpos = {x=pos.x+rxd, y=pos.y, z=pos.z+rzd} local rightpos = {x=pos.x+rxd, y=pos.y, z=pos.z+rzd}
local rightnode = minetest.get_node(rightpos) local rightnode = minetest.get_node(rightpos)
if leftnode.name == "homedecor:bed_"..color.."_regular" then 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 newname = string.gsub(thisnode.name, "_regular", "_kingsize")
local meta = minetest.get_meta(leftpos)
minetest.set_node(pos, {name = "air"}) minetest.set_node(pos, {name = "air"})
minetest.set_node(leftpos, { name = newname, param2 = fdir}) minetest.set_node(leftpos, { name = newname, param2 = param2})
elseif rightnode.name == "homedecor:bed_"..color.."_regular" then 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 newname = string.gsub(thisnode.name, "_regular", "_kingsize")
local meta = minetest.get_meta(rightpos)
minetest.set_node(rightpos, {name = "air"}) 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 end
local topnode = minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z}) local toppos = {x=pos.x, y=pos.y+1.0, z=pos.z}
local bottomnode = minetest.get_node({x=pos.x, y=pos.y-1.0, z=pos.z}) local topposfwd = {x=toppos.x+fxd, y=toppos.y, z=toppos.z+fzd}
if string.find(topnode.name, "homedecor:bed_.*_regular$") then if trybunks and is_buildable_to(placer_name, toppos, topposfwd) then
if fdir == topnode.param2 then
local newname = string.gsub(thisnode.name, "_regular", "_extended") local newname = string.gsub(thisnode.name, "_regular", "_extended")
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
end end
if string.find(bottomnode.name, "homedecor:bed_.*_regular$") then function homedecor.unextend_bed(pos)
if fdir == bottomnode.param2 then
local newname = string.gsub(bottomnode.name, "_regular", "_extended")
minetest.set_node({x=pos.x, y=pos.y-1.0, z=pos.z}, { name = newname, param2 = fdir})
end
end
end
function homedecor.unextend_bed(pos, color)
local bottomnode = minetest.get_node({x=pos.x, y=pos.y-1.0, z=pos.z}) 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 string.find(bottomnode.name, "homedecor:bed_.*_extended$") then if bottomnode.name == "homedecor:bed_extended" then
local newname = string.gsub(bottomnode.name, "_extended", "_regular") 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
end end
function homedecor.place_banister(itemstack, placer, pointed_thing) function homedecor.place_banister(itemstack, placer, pointed_thing)
local rightclick_result = rightclick_pointed_thing(pointed_thing.under, placer, itemstack) local rightclick_result = rightclick_pointed_thing(pointed_thing.under, placer, itemstack, pointed_thing)
if rightclick_result then return rightclick_result end if rightclick_result then return rightclick_result end
local pos, _ = select_node(pointed_thing) local pos, _ = select_node(pointed_thing)
@ -239,12 +273,12 @@ function homedecor.place_banister(itemstack, placer, pointed_thing)
local placer_name = placer:get_player_name() local placer_name = placer:get_player_name()
if not (adef and adef.buildable_to) then if not (adef and adef.buildable_to) then
minetest.chat_send_player(placer_name, "Not enough room - the upper space is occupied!" ) minetest.chat_send_player(placer_name, S("Not enough room - the upper space is occupied!" ))
return itemstack return itemstack
end end
if minetest.is_protected(abovepos, placer_name) then if minetest.is_protected(abovepos, placer_name) then
minetest.chat_send_player(placer_name, "Someone already owns that spot." ) minetest.chat_send_player(placer_name, S("Someone already owns that spot."))
return itemstack return itemstack
end end

View File

@ -1,6 +1,6 @@
-- This code supplies an oven/stove. Basically it's just a copy of the default furnace with different textures. -- This code supplies an oven/stove. Basically it's just a copy of the default furnace with different textures.
local S = homedecor.gettext local S = homedecor_i18n.gettext
local function swap_node(pos, name) local function swap_node(pos, name)
local node = minetest.get_node(pos) local node = minetest.get_node(pos)

View File

@ -1,4 +1,5 @@
local S = homedecor.gettext
local S = homedecor_i18n.gettext
local default_can_dig = function(pos,player) local default_can_dig = function(pos,player)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
@ -118,7 +119,7 @@ function homedecor.handle_inventory(name, def, original_def)
local playername = player:get_player_name() local playername = player:get_player_name()
if playername == owner or if playername == owner or
minetest.check_player_privs(player, "protection_bypass") then minetest.check_player_privs(playername, "protection_bypass") then
return allow_move and return allow_move and
allow_move(pos, from_list, from_index, to_list, to_index, count, player) or allow_move(pos, from_list, from_index, to_list, to_index, count, player) or
count count
@ -137,7 +138,7 @@ function homedecor.handle_inventory(name, def, original_def)
local playername = player:get_player_name() local playername = player:get_player_name()
if playername == owner or if playername == owner or
minetest.check_player_privs(player, "protection_bypass") then minetest.check_player_privs(playername, "protection_bypass") then
return allow_put and allow_put(pos, listname, index, stack, player) or return allow_put and allow_put(pos, listname, index, stack, player) or
stack:get_count() stack:get_count()
end end
@ -155,7 +156,7 @@ function homedecor.handle_inventory(name, def, original_def)
local playername = player:get_player_name() local playername = player:get_player_name()
if playername == owner or if playername == owner or
minetest.check_player_privs(player, "protection_bypass") then minetest.check_player_privs(playername, "protection_bypass") then
return allow_take and allow_take(pos, listname, index, stack, player) or return allow_take and allow_take(pos, listname, index, stack, player) or
stack:get_count() stack:get_count()
end end

View File

@ -9,17 +9,13 @@
local modpath = minetest.get_modpath("homedecor") local modpath = minetest.get_modpath("homedecor")
-- Load support for intllib. local S = homedecor_i18n.gettext
local S, NS = dofile(modpath.."/intllib.lua")
homedecor = { homedecor = {
modpath = modpath, modpath = modpath,
gettext = S,
ngettext = NS,
-- infinite stacks -- infinite stacks
expect_infinite_stacks = minetest.setting_getbool("creative_mode") and not minetest.get_modpath("unified_inventory") expect_infinite_stacks = minetest.settings:get_bool("creative_mode") and not minetest.get_modpath("unified_inventory")
} }
-- Determine if the item being pointed at is the underside of a node (e.g a ceiling) -- Determine if the item being pointed at is the underside of a node (e.g a ceiling)
@ -67,18 +63,15 @@ end
screwdriver = screwdriver or {} screwdriver = screwdriver or {}
homedecor.plain_wood = "homedecor_generic_wood_plain.png^".. homedecor.plain_wood = { name = "homedecor_generic_wood_plain.png", color = 0xffa76820 }
"(homedecor_generic_wood_boards_overlay.png^[colorize:#a7682020:100)" homedecor.mahogany_wood = { name = "homedecor_generic_wood_plain.png", color = 0xff7d2506 }
homedecor.white_wood = "homedecor_generic_wood_plain.png"
homedecor.mahogany_wood = "(homedecor_generic_wood_plain.png^[colorize:#401010:125)^".. homedecor.dark_wood = { name = "homedecor_generic_wood_plain.png", color = 0xff39240f }
"(homedecor_generic_wood_boards_overlay.png^[colorize:#66493880:200)" homedecor.lux_wood = { name = "homedecor_generic_wood_luxury.png", color = 0xff643f23 }
homedecor.white_wood = "(homedecor_generic_wood_plain.png^[colorize:#e0f0ff:200)^"..
"(homedecor_generic_wood_boards_overlay.png^[colorize:#ffffff:200)"
homedecor.dark_wood = "(homedecor_generic_wood_plain.png^[colorize:#140900:200)^"..
"(homedecor_generic_wood_boards_overlay.png^[colorize:#21110180:180)"
homedecor.color_black = 0xff303030
homedecor.color_dark_grey = 0xff606060
homedecor.color_med_grey = 0xffa0a0a0
-- load different handler subsystems -- load different handler subsystems
dofile(modpath.."/handlers/init.lua") dofile(modpath.."/handlers/init.lua")

View File

@ -1,6 +1,6 @@
-- This file supplies refrigerators -- This file supplies refrigerators
local S = homedecor.gettext local S = homedecor_i18n.gettext
local function N_(x) return x end local function N_(x) return x end

View File

@ -1,6 +1,6 @@
-- This file supplies Kitchen cabinets and kitchen sink -- This file supplies Kitchen cabinets and kitchen sink
local S = homedecor.gettext local S = homedecor_i18n.gettext
local cabinet_sides = "(default_wood.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png" local cabinet_sides = "(default_wood.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png"
local cabinet_bottom = "(default_wood.png^[colorize:#000000:100)^(homedecor_kitchen_cabinet_bevel.png^[colorize:#46321580)" local cabinet_bottom = "(default_wood.png^[colorize:#000000:100)^(homedecor_kitchen_cabinet_bevel.png^[colorize:#46321580)"
@ -96,7 +96,7 @@ local cp_cbox = {
} }
homedecor.register("copper_pans", { homedecor.register("copper_pans", {
description = "Copper pans", description = S("Copper pans"),
mesh = "homedecor_copper_pans.obj", mesh = "homedecor_copper_pans.obj",
tiles = { "homedecor_polished_copper.png" }, tiles = { "homedecor_polished_copper.png" },
inventory_image = "homedecor_copper_pans_inv.png", inventory_image = "homedecor_copper_pans_inv.png",
@ -115,7 +115,7 @@ homedecor.register("kitchen_faucet", {
mesh = "homedecor_kitchen_faucet.obj", mesh = "homedecor_kitchen_faucet.obj",
tiles = { "homedecor_generic_metal_bright.png" }, tiles = { "homedecor_generic_metal_bright.png" },
inventory_image = "homedecor_kitchen_faucet_inv.png", inventory_image = "homedecor_kitchen_faucet_inv.png",
description = "Kitchen Faucet", description = S("Kitchen Faucet"),
groups = {snappy=3}, groups = {snappy=3},
selection_box = kf_cbox, selection_box = kf_cbox,
walkable = false, walkable = false,

View File

@ -52,7 +52,7 @@ homedecor.register("ironing_board", {
mesh = "homedecor_ironing_board.obj", mesh = "homedecor_ironing_board.obj",
tiles = { tiles = {
"wool_grey.png", "wool_grey.png",
"homedecor_generic_metal_black.png^[brighten" { name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
}, },
expand = {right = "placeholder"}, expand = {right = "placeholder"},
groups = { snappy = 3 }, groups = { snappy = 3 },

View File

@ -1,64 +1,6 @@
-- This file supplies glowlights -- This file supplies glowlights
local dirs2 = { 9, 18, 7, 12 } local S = homedecor_i18n.gettext
local S = homedecor.gettext
local function N_(x) return x end
local colors = { N_("yellow"), N_("white") }
for i in ipairs(colors) do
local color = colors[i]
minetest.register_abm({
nodenames = { "homedecor:glowlight_thin_"..color },
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
minetest.set_node(pos, {name = "homedecor:glowlight_quarter_"..color, param2 = 20})
end,
})
minetest.register_abm({
nodenames = { "homedecor:glowlight_thick_"..color },
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
minetest.set_node(pos, {name = "homedecor:glowlight_half_"..color, param2 = 20})
end,
})
minetest.register_abm({
nodenames = { "homedecor:glowlight_thin_"..color.."_wall" },
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local fdir = node.param2 or 0
local nfdir = dirs2[fdir+1]
minetest.set_node(pos, {name = "homedecor:glowlight_quarter_"..color, param2 = nfdir})
end,
})
minetest.register_abm({
nodenames = { "homedecor:glowlight_thick_"..color.."_wall" },
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local fdir = node.param2 or 0
local nfdir = dirs2[fdir+1]
minetest.set_node(pos, {name = "homedecor:glowlight_half_"..color, param2 = nfdir})
end,
})
minetest.register_abm({
nodenames = { "homedecor:glowlight_small_cube_"..color.."_ceiling" },
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
minetest.set_node(pos, {name = "homedecor:glowlight_small_cube_"..color, param2 = 20})
end,
})
local glowlight_nodebox = { local glowlight_nodebox = {
half = homedecor.nodebox.slab_y(1/2), half = homedecor.nodebox.slab_y(1/2),
@ -69,69 +11,132 @@ local glowlight_nodebox = {
}, },
} }
homedecor.register("glowlight_half_"..color, { minetest.register_node("homedecor:glowlight_half", {
description = S("Thick Glowlight (@1)", S(color)), description = S("Thick Glowlight"),
tiles = { tiles = {
"homedecor_glowlight_"..color.."_top.png", "homedecor_glowlight_top.png",
"homedecor_glowlight_"..color.."_bottom.png", "homedecor_glowlight_bottom.png",
"homedecor_glowlight_thick_"..color.."_sides.png", "homedecor_glowlight_thick_sides.png",
"homedecor_glowlight_thick_"..color.."_sides.png", "homedecor_glowlight_thick_sides.png",
"homedecor_glowlight_thick_"..color.."_sides.png", "homedecor_glowlight_thick_sides.png",
"homedecor_glowlight_thick_"..color.."_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",
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = {
type = "wallmounted",
wall_top = { -0.5, 0, -0.5, 0.5, 0.5, 0.5 },
wall_bottom = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 },
wall_side = { -0.5, -0.5, -0.5, 0, 0.5, 0.5 }
}, },
selection_box = glowlight_nodebox.half,
node_box = glowlight_nodebox.half, node_box = glowlight_nodebox.half,
groups = { snappy = 3 }, groups = { snappy = 3, ud_param2_colorable = 1 },
light_source = default.LIGHT_MAX, light_source = default.LIGHT_MAX,
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
on_place = minetest.rotate_node 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("glowlight_quarter_"..color, { minetest.register_node("homedecor:glowlight_quarter", {
description = S("Thin Glowlight (@1)", S(color)), description = S("Thin Glowlight"),
tiles = { tiles = {
"homedecor_glowlight_"..color.."_top.png", "homedecor_glowlight_top.png",
"homedecor_glowlight_"..color.."_bottom.png", "homedecor_glowlight_bottom.png",
"homedecor_glowlight_thin_"..color.."_sides.png", "homedecor_glowlight_thin_sides.png",
"homedecor_glowlight_thin_"..color.."_sides.png", "homedecor_glowlight_thin_sides.png",
"homedecor_glowlight_thin_"..color.."_sides.png", "homedecor_glowlight_thin_sides.png",
"homedecor_glowlight_thin_"..color.."_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",
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = {
type = "wallmounted",
wall_top = { -0.5, 0.25, -0.5, 0.5, 0.5, 0.5 },
wall_bottom = { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 },
wall_side = { -0.5, -0.5, -0.5, -0.25, 0.5, 0.5 }
}, },
selection_box = glowlight_nodebox.quarter,
node_box = glowlight_nodebox.quarter, node_box = glowlight_nodebox.quarter,
groups = { snappy = 3 }, groups = { snappy = 3, ud_param2_colorable = 1 },
light_source = default.LIGHT_MAX-1, light_source = default.LIGHT_MAX-1,
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
on_place = minetest.rotate_node 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
}) })
-- Glowlight "cubes" minetest.register_node("homedecor:glowlight_small_cube", {
description = S("Small Glowlight Cube"),
homedecor.register("glowlight_small_cube_"..color, {
description = S("Small Glowlight Cube (@1)", S(color)),
tiles = { tiles = {
"homedecor_glowlight_cube_"..color.."_tb.png", "homedecor_glowlight_cube_tb.png",
"homedecor_glowlight_cube_"..color.."_tb.png", "homedecor_glowlight_cube_tb.png",
"homedecor_glowlight_cube_"..color.."_sides.png", "homedecor_glowlight_cube_sides.png",
"homedecor_glowlight_cube_"..color.."_sides.png", "homedecor_glowlight_cube_sides.png",
"homedecor_glowlight_cube_"..color.."_sides.png", "homedecor_glowlight_cube_sides.png",
"homedecor_glowlight_cube_"..color.."_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",
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = {
type = "wallmounted",
wall_top = { -0.25, 0, -0.25, 0.25, 0.5, 0.25 },
wall_bottom = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 },
wall_side = { -0.5, -0.25, -0.25, 0, 0.25, 0.25 }
}, },
selection_box = glowlight_nodebox.small_cube,
node_box = glowlight_nodebox.small_cube, node_box = glowlight_nodebox.small_cube,
groups = { snappy = 3 }, groups = { snappy = 3, ud_param2_colorable = 1 },
light_source = default.LIGHT_MAX-1, light_source = default.LIGHT_MAX-1,
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
on_place = minetest.rotate_node 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
}) })
end
homedecor.register("plasma_lamp", { homedecor.register("plasma_lamp", {
description = S("Plasma Lamp"), description = S("Plasma Lamp"),
drawtype = "glasslike_framed", drawtype = "mesh",
tiles = {"default_gold_block.png","homedecor_glass_face_clean.png"}, mesh = "plasma_lamp.obj",
special_tiles = { tiles = {
"default_gold_block.png",
{ {
name="homedecor_plasma_storm.png", name="homedecor_plasma_storm.png",
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}, animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0},
@ -142,16 +147,13 @@ homedecor.register("plasma_lamp", {
sunlight_propagates = true, sunlight_propagates = true,
groups = {cracky=3,oddly_breakable_by_hand=3}, groups = {cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(), 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", { homedecor.register("plasma_ball", {
description = S("Plasma Ball"), description = S("Plasma Ball"),
mesh = "homedecor_plasma_ball.obj", mesh = "homedecor_plasma_ball.obj",
tiles = { tiles = {
"homedecor_generic_plastic_black.png", { name = "homedecor_generic_plastic.png", color = homedecor.color_black },
{ {
name = "homedecor_plasma_ball_streamers.png", name = "homedecor_plasma_ball_streamers.png",
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}, animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0},
@ -281,10 +283,10 @@ homedecor.register("oil_lamp", {
mesh = "homedecor_oil_lamp.obj", mesh = "homedecor_oil_lamp.obj",
tiles = { tiles = {
"homedecor_generic_metal_brass.png", "homedecor_generic_metal_brass.png",
"homedecor_generic_metal_black.png", { name = "homedecor_generic_metal.png", color = homedecor.color_black },
"homedecor_generic_metal_black.png^[colorize:#ff0000:160", { name = "homedecor_generic_metal.png", color = 0xffa00000 },
"homedecor_oil_lamp_wick.png", "homedecor_oil_lamp_wick.png",
"homedecor_generic_metal_black.png^[colorize:#ff0000:150", { name = "homedecor_generic_metal.png", color = 0xffa00000 },
"homedecor_oil_lamp_glass.png", "homedecor_oil_lamp_glass.png",
}, },
use_texture_alpha = true, use_texture_alpha = true,
@ -357,7 +359,7 @@ homedecor.register("ceiling_lantern", {
tiles = { "homedecor_light.png", "homedecor_generic_metal_wrought_iron.png" }, tiles = { "homedecor_light.png", "homedecor_generic_metal_wrought_iron.png" },
use_texture_alpha = true, use_texture_alpha = true,
inventory_image = "homedecor_ceiling_lantern_inv.png", inventory_image = "homedecor_ceiling_lantern_inv.png",
description = "Ceiling Lantern", description = S("Ceiling Lantern"),
groups = {snappy=3}, groups = {snappy=3},
light_source = 11, light_source = 11,
selection_box = cl_cbox, selection_box = cl_cbox,
@ -393,15 +395,31 @@ homedecor.register("lattice_lantern_small", {
on_place = minetest.rotate_node on_place = minetest.rotate_node
}) })
local repl = { off="low", low="med", med="hi", hi="max", max="off", } local brightness_tab = {
0xffd0d0d0,
0xffd8d8d8,
0xffe0e0e0,
0xffe8e8e8,
0xffffffff,
}
-- table lamps and standing lamps
local repl = {
["off"] ="low",
["low"] ="med",
["med"] ="hi",
["hi"] ="max",
["max"] ="off",
}
local lamp_colors = { local lamp_colors = {
{ N_("white"), "#ffffffe0:175" }, "white",
{ N_("blue"), "#2626c6e0:200" }, "blue",
{ N_("green"), "#27a927e0:200" }, "green",
{ N_("pink"), "#ff8fb7e0:200" }, "pink",
{ N_("red"), "#ad2323e0:200" }, "red",
{ N_("violet"), "#7f29d7e0:200" }, "violet",
} }
local tlamp_cbox = { local tlamp_cbox = {
@ -414,105 +432,116 @@ local slamp_cbox = {
fixed = { -0.25, -0.5, -0.25, 0.25, 1.5, 0.25 } fixed = { -0.25, -0.5, -0.25, 0.25, 1.5, 0.25 }
} }
local function reg_lamp(suffix, nxt, tilesuffix, light, color) local function reg_lamp(suffix, nxt, light, brightness)
local lampcolor = "_"..color[1]
local colordesc = S(color[1])
local woolcolor = color[1]
local invcolor = color[2]
local wool_brighten = (light or 0) * 7
local bulb_brighten = (light or 0) * 14
homedecor.register("table_lamp"..lampcolor.."_"..suffix, { local wool_brighten = (light or 0) * 15
description = S("Table Lamp (@1)", colordesc),
homedecor.register("table_lamp_"..suffix, {
description = S("Table Lamp"),
mesh = "homedecor_table_lamp.obj", mesh = "homedecor_table_lamp.obj",
tiles = { tiles = {
"wool_"..woolcolor..".png^[colorize:#ffffff:"..wool_brighten, "wool_grey.png^[colorize:#ffffff:"..wool_brighten,
"homedecor_table_standing_lamp_lightbulb.png^[colorize:#ffffff:"..bulb_brighten, { name = "homedecor_table_standing_lamp_lightbulb.png", color = brightness_tab[brightness] },
"homedecor_generic_wood_red.png", { name = "homedecor_generic_wood_red.png", color = 0xffffffff },
"homedecor_generic_metal_black.png^[brighten", { name = "homedecor_generic_metal.png", color = homedecor.color_black },
}, },
inventory_image = "homedecor_table_lamp_foot_inv.png^(homedecor_table_lamp_top_inv.png^[colorize:"..invcolor..")", inventory_image = "homedecor_table_lamp_foot_inv.png^homedecor_table_lamp_top_inv.png",
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette_extended.png",
place_param2 = 240,
walkable = false, walkable = false,
light_source = light, light_source = light,
selection_box = tlamp_cbox, selection_box = tlamp_cbox,
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
groups = {cracky=2,oddly_breakable_by_hand=1, groups = {cracky=2,oddly_breakable_by_hand=1, ud_param2_colorable = 1,
not_in_creative_inventory=((light ~= nil) and 1) or nil, not_in_creative_inventory=((light ~= nil) and 1) or nil,
}, },
drop = "homedecor:table_lamp"..lampcolor.."_off", drop = "homedecor:table_lamp_off",
on_punch = function(pos, node, puncher) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "homedecor:table_lamp"..lampcolor.."_"..repl[suffix] node.name = "homedecor:table_lamp_"..repl[suffix]
minetest.set_node(pos, node) minetest.set_node(pos, node)
end, end,
on_construct = unifieddyes.on_construct,
after_place_node = unifieddyes.recolor_on_place,
after_dig_node = unifieddyes.after_dig_node
}) })
-- standing lamps homedecor.register("standing_lamp_"..suffix, {
description = S("Standing Lamp"),
homedecor.register("standing_lamp"..lampcolor.."_"..suffix, {
description = S("Standing Lamp (@1)", colordesc),
mesh = "homedecor_standing_lamp.obj", mesh = "homedecor_standing_lamp.obj",
tiles = { tiles = {
"wool_"..woolcolor..".png^[colorize:#ffffff:"..wool_brighten, "wool_grey.png^[colorize:#ffffff:"..wool_brighten,
"homedecor_table_standing_lamp_lightbulb.png^[colorize:#ffffff:"..bulb_brighten, { name = "homedecor_table_standing_lamp_lightbulb.png", color = brightness_tab[brightness] },
"homedecor_generic_wood_red.png", { name = "homedecor_generic_wood_red.png", color = 0xffffffff },
"homedecor_generic_metal_black.png^[brighten", { name = "homedecor_generic_metal.png", color = homedecor.color_black },
}, },
inventory_image = "homedecor_standing_lamp_foot_inv.png^(homedecor_standing_lamp_top_inv.png^[colorize:"..invcolor..")", inventory_image = "homedecor_standing_lamp_foot_inv.png^homedecor_standing_lamp_top_inv.png",
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette_extended.png",
place_param2 = 240,
walkable = false, walkable = false,
light_source = light, light_source = light,
groups = {cracky=2,oddly_breakable_by_hand=1, groups = {cracky=2,oddly_breakable_by_hand=1, ud_param2_colorable = 1,
not_in_creative_inventory=((light ~= nil) and 1) or nil, not_in_creative_inventory=((light ~= nil) and 1) or nil,
}, },
selection_box = slamp_cbox, selection_box = slamp_cbox,
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_rotate = screwdriver.rotate_simple, on_rotate = screwdriver.rotate_simple,
on_punch = function(pos, node, puncher) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "homedecor:standing_lamp"..lampcolor.."_"..repl[suffix] node.name = "homedecor:standing_lamp_"..repl[suffix]
minetest.set_node(pos, node) minetest.set_node(pos, node)
end, end,
expand = { top="placeholder" }, on_construct = unifieddyes.on_construct,
after_place_node = unifieddyes.recolor_on_place,
after_dig_node = unifieddyes.after_dig_node,
expand = { top="air" },
}) })
minetest.register_alias("homedecor:standing_lamp_bottom"..lampcolor.."_"..suffix, "homedecor:standing_lamp"..lampcolor.."_"..suffix)
minetest.register_alias("homedecor:standing_lamp_top"..lampcolor.."_"..suffix, "air")
-- for old maps that had the original 3dforniture mod -- for old maps that had the original 3dforniture mod
if lampcolor == "" then
minetest.register_alias("3dforniture:table_lamp_"..suffix, "homedecor:table_lamp_"..suffix) minetest.register_alias("3dforniture:table_lamp_"..suffix, "homedecor:table_lamp_"..suffix)
end end
end
for _, color in ipairs(lamp_colors) do reg_lamp("off", "low", nil, 1 )
reg_lamp("off", "low", "", nil, color ) reg_lamp("low", "med", 3, 2 )
reg_lamp("low", "med", "l", 3, color ) reg_lamp("med", "hi", 7, 3 )
reg_lamp("med", "hi", "m", 7, color ) reg_lamp("hi", "max", 11, 4 )
reg_lamp("hi", "max", "h", 11, color ) reg_lamp("max", "off", 14, 5 )
reg_lamp("max", "off", "x", 14, color )
end -- "gooseneck" style desk lamps
local dlamp_cbox = { local dlamp_cbox = {
type = "fixed", type = "wallmounted",
fixed = { -0.2, -0.5, -0.15, 0.32, 0.12, 0.15 }, wall_side = { -0.2, -0.5, -0.15, 0.32, 0.12, 0.15 },
} }
local dlamp_colors = { N_("red"), N_("blue"), N_("green"), N_("violet") } homedecor.register("desk_lamp", {
description = S("Desk Lamp"),
for _, color in ipairs(dlamp_colors) do
homedecor.register("desk_lamp_"..color, {
description = S("Desk Lamp (@1)", S(color)),
mesh = "homedecor_desk_lamp.obj", mesh = "homedecor_desk_lamp.obj",
tiles = { tiles = {
"homedecor_table_standing_lamp_lightbulb.png^[colorize:#ffffff:200", "homedecor_generic_metal.png",
"homedecor_generic_metal_black.png^[colorize:"..color..":150", "homedecor_generic_metal.png",
"homedecor_generic_metal_black.png", { name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
"homedecor_generic_metal_black.png^[colorize:"..color..":150" { name = "homedecor_table_standing_lamp_lightbulb.png", color = brightness_tab[5] },
}, },
inventory_image = "homedecor_desk_lamp_stem_inv.png^(homedecor_desk_lamp_metal_inv.png^[colorize:"..color..":140)", inventory_image = "homedecor_desk_lamp_inv.png",
paramtype = "light",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = dlamp_cbox, selection_box = dlamp_cbox,
node_box = dlamp_cbox,
walkable = false, walkable = false,
groups = {snappy=3}, groups = {snappy=3, ud_param2_colorable = 1},
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
}) })
end
-- "kitchen"/"dining room" ceiling lamp
homedecor.register("ceiling_lamp", { homedecor.register("ceiling_lamp", {
description = S("Ceiling Lamp"), description = S("Ceiling Lamp"),
@ -520,14 +549,14 @@ homedecor.register("ceiling_lamp", {
tiles = { tiles = {
"homedecor_generic_metal_brass.png", "homedecor_generic_metal_brass.png",
"homedecor_ceiling_lamp_glass.png", "homedecor_ceiling_lamp_glass.png",
"homedecor_table_standing_lamp_lightbulb.png^[colorize:#ffffff:200", "homedecor_table_standing_lamp_lightbulb.png",
"homedecor_generic_plastic_black.png^[colorize:#442d04:200", { name = "homedecor_generic_plastic.png", color = 0xff442d04 },
}, },
inventory_image = "homedecor_ceiling_lamp_inv.png", inventory_image = "homedecor_ceiling_lamp_inv.png",
light_source = default.LIGHT_MAX, light_source = default.LIGHT_MAX,
groups = {snappy=3}, groups = {snappy=3},
walkable = false, walkable = false,
on_punch = function(pos, node, puncher) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
minetest.set_node(pos, {name = "homedecor:ceiling_lamp_off"}) minetest.set_node(pos, {name = "homedecor:ceiling_lamp_off"})
end, end,
}) })
@ -538,13 +567,200 @@ homedecor.register("ceiling_lamp_off", {
tiles = { tiles = {
"homedecor_generic_metal_brass.png", "homedecor_generic_metal_brass.png",
"homedecor_ceiling_lamp_glass.png", "homedecor_ceiling_lamp_glass.png",
"homedecor_table_standing_lamp_lightbulb.png", { "homedecor_table_standing_lamp_lightbulb.png", color = 0xffd0d0d0 },
"homedecor_generic_plastic_black.png^[colorize:#442d04:200", { name = "homedecor_generic_plastic.png", color = 0xff442d04 },
}, },
groups = {snappy=3, not_in_creative_inventory=1}, groups = {snappy=3, not_in_creative_inventory=1},
walkable = false, walkable = false,
on_punch = function(pos, node, puncher) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
minetest.set_node(pos, {name = "homedecor:ceiling_lamp"}) minetest.set_node(pos, {name = "homedecor:ceiling_lamp"})
end, end,
drop = "homedecor:ceiling_lamp" drop = "homedecor:ceiling_lamp"
}) })
-- conversion LBM for param2 coloring
homedecor.old_static_nodes = {
"homedecor:glowlight_quarter_white",
"homedecor:glowlight_quarter_yellow",
"homedecor:glowlight_half_white",
"homedecor:glowlight_half_yellow",
"homedecor:glowlight_small_cube_white",
"homedecor:glowlight_small_cube_yellow"
}
local lamp_power = {"off", "low", "med", "hi", "max"}
for _, power in ipairs(lamp_power) do
for _, color in ipairs(lamp_colors) do
table.insert(homedecor.old_static_nodes, "homedecor:table_lamp_"..color.."_"..power)
table.insert(homedecor.old_static_nodes, "homedecor:standing_lamp_"..color.."_"..power)
end
end
minetest.register_lbm({
name = "homedecor:convert_lighting",
label = "Convert homedecor glowlights, table lamps, and standing lamps to use param2 color",
run_at_every_load = false,
nodenames = homedecor.old_static_nodes,
action = function(pos, node)
local name = node.name
local newname
local color
if string.find(name, "small_cube") then
newname = "homedecor:glowlight_small_cube"
elseif string.find(name, "glowlight_half") then
newname = "homedecor:glowlight_half"
elseif string.find(name, "glowlight_quarter") then
newname = "homedecor:glowlight_quarter"
end
local lampname
if string.find(name, "standing_lamp") then
lampname = "homedecor:standing_lamp"
elseif string.find(name, "table_lamp") then
lampname = "homedecor:table_lamp"
end
if lampname then
newname = lampname
if string.find(name, "_off") then
newname = newname.."_off"
elseif string.find(name, "_low") then
newname = newname.."_low"
elseif string.find(name, "_med") then
newname = newname.."_med"
elseif string.find(name, "_hi") then
newname = newname.."_hi"
elseif string.find(name, "_max") then
newname = newname.."_max"
end
end
if string.find(name, "red") then
color = "red"
elseif string.find(name, "pink") then
color = "pink"
elseif string.find(name, "green") then
color = "green"
elseif string.find(name, "blue") then
color = "blue"
elseif string.find(name, "yellow") then
color = "yellow"
elseif string.find(name, "violet") then
color = "violet"
else
color = "white"
end
local paletteidx, _ = unifieddyes.getpaletteidx("unifieddyes:"..color, "extended")
local old_fdir
local new_node = newname
local new_fdir = 1
local param2
if string.find(name, "glowlight") then
paletteidx, _ = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted")
old_fdir = math.floor(node.param2 / 4)
if old_fdir == 5 then
new_fdir = 0
elseif old_fdir == 1 then
new_fdir = 5
elseif old_fdir == 2 then
new_fdir = 4
elseif old_fdir == 3 then
new_fdir = 3
elseif old_fdir == 4 then
new_fdir = 2
elseif old_fdir == 0 then
new_fdir = 1
end
param2 = paletteidx + new_fdir
else
param2 = paletteidx
end
local meta = minetest.get_meta(pos)
if string.find(name, "table_lamp") or string.find(name, "standing_lamp") then
meta:set_string("palette", "ext")
end
minetest.set_node(pos, { name = new_node, param2 = param2 })
meta:set_string("dye", "unifieddyes:"..color)
end
})
-- this one's for the small "gooseneck" desk lamps
homedecor.old_static_desk_lamps = {
"homedecor:desk_lamp_red",
"homedecor:desk_lamp_blue",
"homedecor:desk_lamp_green",
"homedecor:desk_lamp_violet",
}
minetest.register_lbm({
name = "homedecor:convert_desk_lamps",
label = "Convert homedecor desk lamps to use param2 color",
run_at_every_load = false,
nodenames = homedecor.old_static_desk_lamps,
action = function(pos, node)
local name = node.name
local color = string.sub(name, string.find(name, "_", -8) + 1)
if color == "green" then
color = "medium_green"
elseif color == "violet" then
color = "magenta"
end
local paletteidx, _ = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted")
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
local param2 = paletteidx + new_fdir
minetest.set_node(pos, { name = "homedecor:desk_lamp", param2 = param2 })
local meta = minetest.get_meta(pos)
meta:set_string("dye", "unifieddyes:"..color)
end
})
minetest.register_lbm({
name = "homedecor:recolor_lighting",
label = "Convert some kinds of lights to use UD extended palette",
run_at_every_load = false,
nodenames = {
"homedecor:table_lamp_off",
"homedecor:table_lamp_low",
"homedecor:table_lamp_med",
"homedecor:table_lamp_hi",
"homedecor:table_lamp_max",
"homedecor:standing_lamp_off",
"homedecor:standing_lamp_low",
"homedecor:standing_lamp_med",
"homedecor:standing_lamp_hi",
"homedecor:standing_lamp_max",
},
action = function(pos, node)
local meta = minetest.get_meta(pos)
if meta:get_string("palette") ~= "ext" then
minetest.swap_node(pos, { name = node.name, param2 = unifieddyes.convert_classic_palette[node.param2] })
meta:set_string("palette", "ext")
end
end
})

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
local S = homedecor.gettext local S = homedecor_i18n.gettext
local function N_(x) return x end local function N_(x) return x end
@ -74,7 +74,7 @@ homedecor.register("flower_pot_"..p, {
mesh = "homedecor_flowerpot.obj", mesh = "homedecor_flowerpot.obj",
tiles = { tiles = {
"homedecor_flower_pot_"..p..".png", "homedecor_flower_pot_"..p..".png",
"default_dirt.png^[colorize:#000000:175" { name = "default_dirt.png", color = 0xff505050 },
}, },
groups = { snappy = 3, potting_soil=1 }, groups = { snappy = 3, potting_soil=1 },
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
@ -100,7 +100,7 @@ for _, f in ipairs(flowers_list) do
mesh = "homedecor_potted_plant.obj", mesh = "homedecor_potted_plant.obj",
tiles = { tiles = {
"homedecor_flower_pot_terracotta.png", "homedecor_flower_pot_terracotta.png",
"default_dirt.png^[colorize:#000000:175", { name = "default_dirt.png", color = 0xff303030 },
"flowers_"..flower..".png" "flowers_"..flower..".png"
}, },
walkable = false, walkable = false,
@ -167,7 +167,7 @@ homedecor.register("fishtank", {
description = S("Fishtank"), description = S("Fishtank"),
mesh = "homedecor_fishtank.obj", mesh = "homedecor_fishtank.obj",
tiles = { tiles = {
"homedecor_generic_plastic_black.png", { name = "homedecor_generic_plastic.png", color = homedecor.color_black },
"homedecor_fishtank_filter.png", "homedecor_fishtank_filter.png",
"homedecor_fishtank_fishes.png", "homedecor_fishtank_fishes.png",
"homedecor_fishtank_gravel.png", "homedecor_fishtank_gravel.png",
@ -189,7 +189,7 @@ homedecor.register("fishtank_lighted", {
description = S("Fishtank (lighted)"), description = S("Fishtank (lighted)"),
mesh = "homedecor_fishtank.obj", mesh = "homedecor_fishtank.obj",
tiles = { tiles = {
"homedecor_generic_plastic_black.png", { name = "homedecor_generic_plastic.png", color = homedecor.color_black },
"homedecor_fishtank_filter.png", "homedecor_fishtank_filter.png",
"homedecor_fishtank_fishes_lighted.png", "homedecor_fishtank_fishes_lighted.png",
"homedecor_fishtank_gravel_lighted.png", "homedecor_fishtank_gravel_lighted.png",
@ -268,7 +268,7 @@ homedecor.register("pool_table", {
"homedecor_pool_table_baize.png", "homedecor_pool_table_baize.png",
"homedecor_pool_table_pockets.png", "homedecor_pool_table_pockets.png",
"homedecor_pool_table_balls.png", "homedecor_pool_table_balls.png",
"homedecor_generic_wood_luxury.png^[colorize:#000000:90" homedecor.lux_wood,
}, },
description = S("Pool Table"), description = S("Pool Table"),
inventory_image = "homedecor_pool_table_inv.png", inventory_image = "homedecor_pool_table_inv.png",
@ -290,7 +290,7 @@ local piano_cbox = {
homedecor.register("piano", { homedecor.register("piano", {
mesh = "homedecor_piano.obj", mesh = "homedecor_piano.obj",
tiles = { tiles = {
"homedecor_generic_wood_luxury.png^[colorize:#000000:175", { name = "homedecor_generic_wood_luxury.png", color = homedecor.color_black },
"homedecor_piano_keys.png", "homedecor_piano_keys.png",
"homedecor_generic_metal_brass.png", "homedecor_generic_metal_brass.png",
}, },
@ -336,7 +336,7 @@ homedecor.register("sportbench", {
tiles = { tiles = {
"homedecor_generic_metal_wrought_iron.png", "homedecor_generic_metal_wrought_iron.png",
"homedecor_generic_metal_bright.png", "homedecor_generic_metal_bright.png",
"homedecor_generic_metal_black.png", { name = "homedecor_generic_metal.png", color = homedecor.color_black },
"wool_black.png" "wool_black.png"
}, },
inventory_image = "homedecor_sport_bench_inv.png", inventory_image = "homedecor_sport_bench_inv.png",
@ -368,10 +368,10 @@ homedecor.register("tool_cabinet", {
description = S("Metal tool cabinet and work table"), description = S("Metal tool cabinet and work table"),
mesh = "homedecor_tool_cabinet.obj", mesh = "homedecor_tool_cabinet.obj",
tiles = { tiles = {
"homedecor_generic_metal_black.png^[colorize:#ff0000:150", { name = "homedecor_generic_metal.png", color = 0xffd00000 },
"homedecor_tool_cabinet_drawers.png", "homedecor_tool_cabinet_drawers.png",
"homedecor_generic_metal_black.png^[colorize:#006000:150", { name = "homedecor_generic_metal.png", color = 0xff006000 },
"homedecor_generic_metal_black.png^[brighten", { name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
"homedecor_generic_metal_bright.png", "homedecor_generic_metal_bright.png",
"homedecor_tool_cabinet_misc.png", "homedecor_tool_cabinet_misc.png",
}, },
@ -400,7 +400,7 @@ for _, i in ipairs(n) do
mesh = "homedecor_picture_frame.obj", mesh = "homedecor_picture_frame.obj",
tiles = { tiles = {
"homedecor_picture_frame_image"..i..".png", "homedecor_picture_frame_image"..i..".png",
"homedecor_generic_wood_luxury.png^[colorize:#000000:50", homedecor.lux_wood,
"homedecor_picture_frame_back.png", "homedecor_picture_frame_back.png",
}, },
inventory_image = "homedecor_picture_frame"..i.."_inv.png", inventory_image = "homedecor_picture_frame"..i.."_inv.png",

View File

@ -1,142 +1,142 @@
# Blender v2.73 (sub 0) OBJ File: 'forniture-armchair.blend' # Blender v2.72 (sub 0) OBJ File: 'forniture-armchair.blend'
# www.blender.org # www.blender.org
o chair_Cylinder o chair_Cylinder
v 0.375000 -0.437500 -0.500000 v 0.500000 -0.375000 -0.437500
v 0.375000 0.039062 -0.500000 v 0.500000 -0.375000 0.039062
v 0.375000 0.101562 -0.437500 v 0.437500 -0.375000 0.101562
v 0.375000 0.101562 0.035156 v -0.035156 -0.375000 0.101562
v 0.375000 0.437500 0.035156 v -0.035156 -0.375000 0.437500
v 0.375000 0.500000 0.097656 v -0.097656 -0.375000 0.500000
v -0.375000 0.500000 0.375000 v -0.375000 0.375000 0.500000
v 0.312500 -0.187500 -0.375000 v 0.375000 -0.312500 -0.187500
v -0.375000 0.500000 0.097656 v -0.097656 0.375000 0.500000
v -0.375000 0.437500 0.035156 v -0.035156 0.375000 0.437500
v -0.312500 -0.187500 -0.375000 v 0.375000 0.312500 -0.187500
v -0.375000 0.101562 0.035156 v -0.035156 0.375000 0.101562
v -0.375000 0.101562 -0.437500 v 0.437500 0.375000 0.101562
v -0.375000 0.039062 -0.500000 v 0.500000 0.375000 0.039062
v 0.375000 0.500000 0.375000 v -0.375000 -0.375000 0.500000
v -0.375000 -0.437500 -0.500000 v 0.500000 0.375000 -0.437500
v -0.437500 -0.437500 -0.500000 v 0.500000 0.437500 -0.437500
v -0.500000 -0.437500 -0.375000 v 0.375000 0.500000 -0.437500
v -0.500000 0.437500 0.097656 v -0.097656 0.500000 0.437500
v -0.437500 0.039062 -0.500000 v 0.500000 0.437500 0.039062
v 0.437500 0.500000 0.437500 v -0.437500 -0.437500 0.500000
v -0.437500 0.101562 -0.437500 v 0.437500 0.437500 0.101562
v 0.437500 0.500000 0.097656 v -0.097656 -0.437500 0.500000
v -0.437500 0.101562 0.035156 v -0.035156 0.437500 0.101562
v 0.437500 0.437500 0.035156 v -0.035156 -0.437500 0.437500
v -0.437500 0.437500 0.035156 v -0.035156 0.437500 0.437500
v 0.437500 0.101562 0.035156 v -0.035156 -0.437500 0.101562
v -0.437500 0.500000 0.097656 v -0.097656 0.437500 0.500000
v 0.437500 0.101562 -0.437500 v 0.437500 -0.437500 0.101562
v -0.437500 0.500000 0.437500 v -0.437500 0.437500 0.500000
v 0.437500 0.039062 -0.500000 v 0.500000 -0.437500 0.039062
v 0.500000 0.437500 0.097656 v -0.097656 -0.500000 0.437500
v 0.437500 -0.437500 -0.500000
v -0.312500 -0.437500 -0.375000
v 0.500000 0.437500 0.500000
v 0.500000 -0.437500 0.500000
v 0.312500 -0.437500 -0.375000
v -0.500000 0.437500 0.500000
v -0.500000 -0.437500 0.500000
v -0.500000 0.039062 0.097656
v 0.500000 0.039062 0.097656
v -0.500000 0.039062 -0.437500
v 0.500000 0.039062 -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.312500 0.437500 0.097656 v 0.375000 0.312500 -0.437500
v 0.312500 0.039062 0.097656 v -0.500000 -0.500000 0.437500
v 0.312500 0.039062 -0.437500 v -0.500000 -0.500000 -0.437500
v 0.312500 -0.437500 -0.437500 v 0.375000 -0.312500 -0.437500
v -0.312500 0.437500 0.097656 v -0.500000 0.500000 0.437500
v 0.500000 -0.437500 -0.375000 v -0.500000 0.500000 -0.437500
v -0.312500 0.039062 0.097656 v -0.097656 0.500000 0.039062
v -0.312500 0.039062 -0.437500 v -0.097656 -0.500000 0.039062
v -0.312500 -0.437500 -0.437500 v 0.437500 0.500000 0.039062
v 0.312500 -0.125000 0.312500 v 0.437500 -0.500000 0.039062
v -0.312500 -0.125000 0.312500 v 0.437500 0.500000 -0.437500
v 0.312500 0.437500 0.312500 v 0.437500 -0.500000 -0.437500
v -0.312500 0.437500 0.312500 v -0.097656 -0.312500 0.437500
v 0.312500 -0.109375 -0.187500 v -0.097656 -0.312500 0.039062
v -0.312500 -0.109375 -0.187500 v 0.437500 -0.312500 0.039062
v 0.312500 0.156250 0.285156 v 0.437500 -0.312500 -0.437500
v -0.312500 0.156250 0.285156 v -0.097656 0.312500 0.437500
v 0.312500 -0.125000 -0.312500 v 0.375000 -0.500000 -0.437500
v -0.312500 -0.109375 0.250000 v -0.097656 0.312500 0.039062
v 0.312500 -0.062500 0.296875 v 0.437500 0.312500 0.039062
v -0.312500 0.375000 0.296875 v 0.437500 0.312500 -0.437500
v 0.312500 -0.109375 0.250000 v -0.312500 -0.312500 -0.125000
v -0.312500 -0.125000 -0.312500 v -0.312500 0.312500 -0.125000
v 0.312500 0.375000 0.296875 v -0.312500 -0.312500 0.437500
v -0.312500 -0.062500 0.296875 v -0.312500 0.312500 0.437500
v 0.312500 -0.101562 0.031250 v 0.187500 -0.312500 -0.109375
v -0.312500 -0.101562 0.031250 v 0.187500 0.312500 -0.109375
v -0.432138 -0.500000 0.343750 v -0.285156 -0.312500 0.156250
v -0.432138 -0.437500 0.343750 v -0.285156 0.312500 0.156250
v -0.380362 -0.500000 0.343750 v 0.312500 -0.312500 -0.125000
v -0.380362 -0.437500 0.343750 v -0.250000 0.312500 -0.109375
v -0.343750 -0.500000 0.380362 v -0.296875 -0.312500 -0.062500
v -0.343750 -0.437500 0.380362 v -0.296875 0.312500 0.375000
v -0.343750 -0.500000 0.432138 v -0.250000 -0.312500 -0.109375
v -0.343750 -0.437500 0.432138 v 0.312500 0.312500 -0.125000
v -0.380362 -0.500000 0.468750 v -0.296875 -0.312500 0.375000
v -0.380362 -0.437500 0.468750 v -0.296875 0.312500 -0.062500
v -0.432138 -0.500000 0.468750 v -0.031250 -0.312500 -0.101562
v -0.432138 -0.437500 0.468750 v -0.031250 0.312500 -0.101562
v -0.468750 -0.500000 0.432138 v -0.343750 0.432138 -0.500000
v -0.468750 -0.437500 0.432138 v -0.343750 0.432138 -0.437500
v -0.468750 -0.500000 0.380362 v -0.343750 0.380361 -0.500000
v -0.468750 -0.437500 0.380362 v -0.343750 0.380361 -0.437500
v 0.343750 -0.437500 0.380362 v -0.380362 0.343750 -0.500000
v 0.343750 -0.500000 0.380362 v -0.380362 0.343750 -0.437500
v 0.343750 -0.437500 0.432138 v -0.432139 0.343750 -0.500000
v 0.343750 -0.500000 0.432138 v -0.432139 0.343750 -0.437500
v 0.380362 -0.437500 0.468750 v -0.468750 0.380361 -0.500000
v 0.380362 -0.500000 0.468750 v -0.468750 0.380361 -0.437500
v 0.432138 -0.437500 0.468750 v -0.468750 0.432138 -0.500000
v 0.432138 -0.500000 0.468750 v -0.468750 0.432138 -0.437500
v 0.468750 -0.437500 0.432138 v -0.432139 0.468750 -0.500000
v 0.468750 -0.500000 0.432138 v -0.432139 0.468750 -0.437500
v 0.468750 -0.437500 0.380362 v -0.380362 0.468750 -0.500000
v 0.468750 -0.500000 0.380362 v -0.380362 0.468750 -0.437500
v 0.432138 -0.437500 0.343750 v -0.380361 -0.343750 -0.437500
v 0.432138 -0.500000 0.343750 v -0.380361 -0.343750 -0.500000
v 0.380362 -0.437500 0.343750 v -0.432138 -0.343750 -0.437500
v 0.380362 -0.500000 0.343750 v -0.432138 -0.343750 -0.500000
v -0.432138 -0.500000 -0.468750 v -0.468750 -0.380362 -0.437500
v -0.432138 -0.437500 -0.468750 v -0.468750 -0.380362 -0.500000
v -0.380362 -0.500000 -0.468750 v -0.468750 -0.432139 -0.437500
v -0.380362 -0.437500 -0.468750 v -0.468750 -0.432139 -0.500000
v -0.343750 -0.500000 -0.432138 v -0.432138 -0.468750 -0.437500
v -0.343750 -0.437500 -0.432138 v -0.432138 -0.468750 -0.500000
v -0.343750 -0.500000 -0.380362 v -0.380361 -0.468750 -0.437500
v -0.343750 -0.437500 -0.380362 v -0.380361 -0.468750 -0.500000
v -0.380362 -0.500000 -0.343750 v -0.343750 -0.432139 -0.437500
v -0.380362 -0.437500 -0.343750 v -0.343750 -0.432139 -0.500000
v -0.432138 -0.500000 -0.343750 v -0.343750 -0.380362 -0.437500
v -0.432138 -0.437500 -0.343750 v -0.343750 -0.380362 -0.500000
v -0.468750 -0.500000 -0.380362 v 0.468750 0.432139 -0.500000
v -0.468750 -0.437500 -0.380362 v 0.468750 0.432139 -0.437500
v -0.468750 -0.500000 -0.432138 v 0.468750 0.380362 -0.500000
v -0.468750 -0.437500 -0.432138 v 0.468750 0.380362 -0.437500
v 0.343750 -0.437500 -0.432138 v 0.432138 0.343750 -0.500000
v 0.343750 -0.500000 -0.432138 v 0.432138 0.343750 -0.437500
v 0.343750 -0.437500 -0.380362 v 0.380361 0.343750 -0.500000
v 0.343750 -0.500000 -0.380362 v 0.380361 0.343750 -0.437500
v 0.380362 -0.437500 -0.343750 v 0.343750 0.380362 -0.500000
v 0.380362 -0.500000 -0.343750 v 0.343750 0.380362 -0.437500
v 0.432138 -0.437500 -0.343750 v 0.343750 0.432139 -0.500000
v 0.432138 -0.500000 -0.343750 v 0.343750 0.432139 -0.437500
v 0.468750 -0.437500 -0.380362 v 0.380361 0.468750 -0.500000
v 0.468750 -0.500000 -0.380362 v 0.380361 0.468750 -0.437500
v 0.468750 -0.437500 -0.432138 v 0.432138 0.468750 -0.500000
v 0.468750 -0.500000 -0.432138 v 0.432138 0.468750 -0.437500
v 0.432138 -0.437500 -0.468750 v 0.432139 -0.343750 -0.437500
v 0.432138 -0.500000 -0.468750 v 0.432139 -0.343750 -0.500000
v 0.380362 -0.437500 -0.468750 v 0.380362 -0.343750 -0.437500
v 0.380362 -0.500000 -0.468750 v 0.380362 -0.343750 -0.500000
v 0.343750 -0.380361 -0.437500
v 0.343750 -0.380361 -0.500000
v 0.343750 -0.432138 -0.437500
v 0.343750 -0.432138 -0.500000
v 0.380362 -0.468750 -0.437500
v 0.380362 -0.468750 -0.500000
v 0.432139 -0.468750 -0.437500
v 0.432139 -0.468750 -0.500000
v 0.468750 -0.432138 -0.437500
v 0.468750 -0.432138 -0.500000
v 0.468750 -0.380361 -0.437500
v 0.468750 -0.380361 -0.500000
vt 0.062590 0.539162 vt 0.062590 0.539162
vt 0.062590 0.601648 vt 0.062590 0.601648
vt 0.000103 0.539162 vt 0.000103 0.539162
@ -367,52 +367,52 @@ vt 0.125000 0.312500
vt 0.125000 0.375000 vt 0.125000 0.375000
vt 0.187500 0.312500 vt 0.187500 0.312500
vt 0.187500 0.375000 vt 0.187500 0.375000
vn 0.341600 0.341600 -0.875600 vn 0.875600 -0.341600 0.341600
vn 0.341600 0.875600 -0.341600 vn 0.341600 -0.341600 0.875600
vn 0.875600 0.341600 -0.341600 vn 0.341600 -0.875600 0.341600
vn -0.341600 0.875600 -0.341600 vn 0.341600 0.341600 0.875600
vn -0.341600 0.341600 -0.875600 vn 0.875600 0.341600 0.341600
vn -0.875600 0.341600 -0.341600 vn 0.341600 0.875600 0.341600
vn -0.300200 0.905400 0.300200 vn -0.300200 0.300200 0.905400
vn -0.650700 0.391300 0.650700 vn -0.650700 0.650700 0.391300
vn 0.300200 0.905400 0.300200 vn -0.300200 -0.300200 0.905400
vn 0.650700 0.391300 0.650700 vn -0.650700 -0.650700 0.391300
vn -0.987800 0.110000 -0.110000 vn 0.110000 0.987800 0.110000
vn -0.717300 -0.630300 -0.297100 vn 0.297100 0.717300 -0.630300
vn -0.577400 -0.577400 0.577400 vn -0.577400 0.577400 -0.577400
vn 0.000000 0.000000 -1.000000
vn 0.000000 0.382700 -0.923900
vn 0.000000 0.990200 0.139900
vn 0.000000 0.707100 -0.707100
vn -0.729300 0.101700 -0.676600
vn 0.729300 0.101700 -0.676600
vn 0.526700 0.636900 -0.563000
vn -0.526700 0.636900 -0.563000
vn -0.110000 0.987800 -0.110000
vn 0.110000 0.987800 -0.110000
vn -0.574300 0.578900 -0.578900
vn -0.297100 -0.630200 -0.717300
vn 0.297100 -0.630200 -0.717300
vn 0.717300 -0.630200 -0.297100
vn 0.000000 0.898300 -0.439400
vn 0.000000 0.996800 -0.079900
vn 0.000000 -0.148700 -0.988900
vn 0.987800 0.110000 -0.110000
vn 0.574300 0.578900 -0.578900
vn 0.717300 -0.630300 -0.297100
vn -0.717300 -0.630200 -0.297100
vn 0.577400 -0.577400 0.577400
vn 0.000000 1.000000 0.000000
vn -1.000000 0.000000 0.000000
vn 1.000000 0.000000 0.000000 vn 1.000000 0.000000 0.000000
vn -0.707100 -0.707100 0.000000 vn 0.923900 0.000000 0.382700
vn 0.707100 -0.707100 0.000000 vn -0.139900 -0.000000 0.990200
vn 0.000000 -1.000000 0.000000
vn 0.707100 0.000000 -0.707100
vn 0.707100 0.000000 0.707100 vn 0.707100 0.000000 0.707100
vn 0.676600 0.729300 0.101700
vn 0.676600 -0.729300 0.101700
vn 0.563000 -0.526700 0.636900
vn 0.563000 0.526700 0.636900
vn 0.110000 0.110000 0.987800
vn 0.110000 -0.110000 0.987800
vn 0.578900 0.574300 0.578900
vn 0.717300 0.297100 -0.630200
vn 0.717300 -0.297100 -0.630200
vn 0.297100 -0.717300 -0.630200
vn 0.439400 0.000000 0.898300
vn 0.079900 0.000000 0.996800
vn 0.988900 0.000000 -0.148700
vn 0.110000 -0.987800 0.110000
vn 0.578900 -0.574300 0.578900
vn 0.297100 -0.717300 -0.630300
vn 0.297100 0.717300 -0.630200
vn -0.577400 -0.577400 -0.577400
vn 0.000000 0.000000 1.000000 vn 0.000000 0.000000 1.000000
vn -0.707100 0.000000 0.707100 vn -0.000000 1.000000 0.000000
vn -0.707100 0.000000 -0.707100 vn 0.000000 -1.000000 0.000000
vn 0.000000 0.707100 -0.707100
vn 0.000000 -0.707100 -0.707100
vn 0.000000 0.000000 -1.000000
vn 0.707100 -0.707100 0.000000
vn -0.707100 -0.707100 0.000000
vn -1.000000 0.000000 0.000000
vn -0.707100 0.707100 0.000000
vn 0.707100 0.707100 0.000000
g chair_Cylinder_colored g chair_Cylinder_colored
s 1 s 1
f 31/1/1 29/2/2 43/3/3 f 31/1/1 29/2/2 43/3/3

File diff suppressed because it is too large Load Diff

View File

@ -1,158 +1,158 @@
# Blender v2.73 (sub 0) OBJ File: 'bed-extended.blend' # Blender v2.72 (sub 0) OBJ File: 'bed-extended.blend'
# www.blender.org # www.blender.org
o Cube o Cube
v -0.500000 -0.375000 1.437500 v -1.437500 0.500000 -0.375000
v -0.500000 -0.375000 -0.437500 v 0.437500 0.500000 -0.375000
v 0.500000 -0.375000 -0.437500 v 0.437500 -0.500000 -0.375000
v 0.500000 -0.375000 1.437500 v -1.437500 -0.500000 -0.375000
v -0.500000 -0.125000 1.437500 v -1.437500 0.500000 -0.125000
v -0.500000 -0.125000 -0.437500 v 0.437500 0.500000 -0.125000
v 0.500000 -0.125000 -0.437500 v 0.437500 -0.500000 -0.125000
v 0.500000 -0.125000 1.437500 v -1.437500 -0.500000 -0.125000
v -0.437500 -0.125000 1.437500 v -1.437500 0.437500 -0.125000
v -0.437500 -0.125000 -0.437500 v 0.437500 0.437500 -0.125000
v 0.437500 -0.125000 -0.437500 v 0.437500 -0.437500 -0.125000
v 0.437500 -0.125000 1.437500 v -1.437500 -0.437500 -0.125000
v 0.375000 -0.500000 -0.437500 v 0.437500 -0.375000 -0.500000
v 0.375000 -0.500000 -0.500000 v 0.500000 -0.375000 -0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.437500 v 0.437500 -0.500000 -0.500000
v 0.375000 0.500000 -0.437500 v 0.437500 -0.375000 0.500000
v 0.375000 0.500000 -0.500000 v 0.500000 -0.375000 0.500000
v 0.500000 -0.500000 0.500000
v 0.437500 -0.500000 0.500000
v 0.437500 0.500000 -0.500000
v 0.500000 0.500000 -0.500000 v 0.500000 0.500000 -0.500000
v 0.500000 0.500000 -0.437500 v 0.500000 0.375000 -0.500000
v -0.500000 -0.500000 -0.437500 v 0.437500 0.375000 -0.500000
v -0.500000 -0.500000 -0.500000 v 0.437500 0.500000 0.500000
v -0.375000 -0.500000 -0.500000 v 0.500000 0.500000 0.500000
v -0.375000 -0.500000 -0.437500 v 0.500000 0.375000 0.500000
v -0.500000 0.500000 -0.437500 v 0.437500 0.375000 0.500000
v -0.500000 0.500000 -0.500000 v 0.437500 0.375000 -0.375000
v -0.375000 0.500000 -0.500000 v 0.500000 0.375000 -0.375000
v -0.375000 0.500000 -0.437500 v 0.500000 -0.375000 -0.375000
v -0.375000 -0.375000 -0.437500
v -0.375000 -0.375000 -0.500000
v 0.375000 -0.375000 -0.500000
v 0.375000 -0.375000 -0.437500
v -0.375000 -0.125000 -0.437500
v -0.375000 -0.125000 -0.500000
v 0.375000 -0.125000 -0.500000
v 0.375000 -0.125000 -0.437500
v -0.375000 0.000000 -0.437500
v -0.375000 0.000000 -0.500000
v 0.375000 0.000000 -0.500000
v 0.375000 0.000000 -0.437500
v -0.375000 0.125000 -0.437500
v -0.375000 0.125000 -0.500000
v 0.375000 0.125000 -0.500000
v 0.375000 0.125000 -0.437500
v 0.375000 -0.500000 1.437500
v 0.375000 -0.500000 1.500000
v 0.500000 -0.500000 1.500000
v 0.500000 -0.500000 1.437500
v 0.375000 0.500000 1.437500
v 0.375000 0.500000 1.500000
v 0.500000 0.500000 1.500000
v 0.500000 0.500000 1.437500
v -0.500000 -0.500000 1.437500
v -0.500000 -0.500000 1.500000
v -0.375000 -0.500000 1.500000
v -0.375000 -0.500000 1.437500
v -0.500000 0.500000 1.437500
v -0.500000 0.500000 1.500000
v -0.375000 0.500000 1.500000
v -0.375000 0.500000 1.437500
v -0.375000 -0.375000 1.437500
v -0.375000 -0.375000 1.500000
v 0.375000 -0.375000 1.500000
v 0.375000 -0.375000 1.437500
v -0.375000 -0.125000 1.437500
v -0.375000 -0.125000 1.500000
v 0.375000 -0.125000 1.500000
v 0.375000 -0.125000 1.437500
v -0.375000 -0.062500 1.437500
v -0.375000 -0.062500 1.500000
v 0.375000 -0.062500 1.500000
v 0.375000 -0.062500 1.437500
v -0.375000 0.187500 1.437500
v -0.375000 0.187500 1.500000
v 0.375000 0.187500 1.500000
v 0.375000 0.187500 1.437500
v -0.375000 0.250000 1.437500
v -0.375000 0.250000 1.500000
v 0.375000 0.250000 1.500000
v 0.375000 0.250000 1.437500
v -0.375000 0.437500 1.437500
v -0.375000 0.437500 1.500000
v 0.375000 0.437500 1.500000
v 0.375000 0.437500 1.437500
v -0.500000 -0.125000 0.500000
v -0.500000 -0.375000 0.500000
v 0.500000 -0.125000 0.500000
v 0.500000 -0.375000 0.500000
v -0.437500 -0.125000 0.500000
v 0.437500 -0.125000 0.500000
v -0.437500 -0.375000 0.500000
v -0.437500 -0.375000 1.437500
v -0.437500 -0.078125 1.437500
v -0.437500 -0.078125 -0.437500
v 0.437500 -0.078125 -0.437500
v 0.437500 -0.078125 1.437500
v -0.406250 -0.046875 1.437500
v -0.406250 -0.046875 -0.437500
v 0.406250 -0.046875 -0.437500
v 0.406250 -0.046875 1.437500
v -0.312500 -0.046875 1.437500
v -0.312500 -0.046875 1.062500
v 0.312500 -0.046875 1.062500
v 0.312500 -0.046875 1.437500
v -0.406250 -0.046875 0.500000
v -0.437500 -0.078125 0.500000
v 0.406250 -0.046875 0.500000
v 0.437500 -0.078125 0.500000
v -0.312500 -0.031250 1.437500
v -0.312500 -0.031250 1.062500
v 0.312500 -0.031250 1.062500
v 0.312500 -0.031250 1.437500
v -0.250000 0.031250 1.375000
v -0.250000 0.031250 1.125000
v 0.250000 0.031250 1.125000
v 0.250000 0.031250 1.375000
v 0.437500 -0.375000 1.437500
v 0.437500 -0.375000 0.500000
v -0.437500 -0.375000 1.375000
v 0.437500 -0.375000 1.375000
v -0.437500 -0.375000 -0.375000
v 0.437500 -0.375000 -0.375000 v 0.437500 -0.375000 -0.375000
v -0.437500 -0.312500 1.375000 v 0.437500 0.375000 -0.125000
v 0.437500 -0.312500 1.375000 v 0.500000 0.375000 -0.125000
v -0.437500 -0.312500 -0.375000 v 0.500000 -0.375000 -0.125000
v 0.437500 -0.312500 -0.375000 v 0.437500 -0.375000 -0.125000
v -0.437500 -0.125000 1.000000 v 0.437500 0.375000 0.000000
v 0.437500 -0.125000 1.000000 v 0.500000 0.375000 0.000000
v -0.437500 -0.078125 1.000000 v 0.500000 -0.375000 0.000000
v 0.406250 -0.046875 1.000000 v 0.437500 -0.375000 0.000000
v -0.406250 -0.046875 1.000000 v 0.437500 0.375000 0.125000
v 0.437500 -0.078125 1.000000 v 0.500000 0.375000 0.125000
v -0.437500 -0.312500 0.500000 v 0.500000 -0.375000 0.125000
v 0.437500 -0.312500 0.500000 v 0.437500 -0.375000 0.125000
v -0.500000 -0.375000 -0.437500 v -1.437500 -0.375000 -0.500000
v 0.500000 -0.375000 -0.437500 v -1.500000 -0.375000 -0.500000
v -0.500000 -0.375000 0.500000 v -1.500000 -0.500000 -0.500000
v 0.500000 -0.375000 0.500000 v -1.437500 -0.500000 -0.500000
v -0.437500 -0.375000 0.500000 v -1.437500 -0.375000 0.500000
v -0.437500 -0.375000 -0.437500 v -1.500000 -0.375000 0.500000
v 0.437500 -0.375000 -0.437500 v -1.500000 -0.500000 0.500000
v 0.437500 -0.375000 0.500000 v -1.437500 -0.500000 0.500000
v -0.437500 -0.375000 -0.375000 v -1.437500 0.500000 -0.500000
v 0.437500 -0.375000 -0.375000 v -1.500000 0.500000 -0.500000
v -0.375000 0.250000 -0.437500 v -1.500000 0.375000 -0.500000
v -0.375000 0.250000 -0.500000 v -1.437500 0.375000 -0.500000
v 0.375000 0.250000 -0.500000 v -1.437500 0.500000 0.500000
v 0.375000 0.250000 -0.437500 v -1.500000 0.500000 0.500000
v -0.375000 0.375000 -0.437500 v -1.500000 0.375000 0.500000
v -0.375000 0.375000 -0.500000 v -1.437500 0.375000 0.500000
v 0.375000 0.375000 -0.500000 v -1.437500 0.375000 -0.375000
v 0.375000 0.375000 -0.437500 v -1.500000 0.375000 -0.375000
v -1.500000 -0.375000 -0.375000
v -1.437500 -0.375000 -0.375000
v -1.437500 0.375000 -0.125000
v -1.500000 0.375000 -0.125000
v -1.500000 -0.375000 -0.125000
v -1.437500 -0.375000 -0.125000
v -1.437500 0.375000 -0.062500
v -1.500000 0.375000 -0.062500
v -1.500000 -0.375000 -0.062500
v -1.437500 -0.375000 -0.062500
v -1.437500 0.375000 0.187500
v -1.500000 0.375000 0.187500
v -1.500000 -0.375000 0.187500
v -1.437500 -0.375000 0.187500
v -1.437500 0.375000 0.250000
v -1.500000 0.375000 0.250000
v -1.500000 -0.375000 0.250000
v -1.437500 -0.375000 0.250000
v -1.437500 0.375000 0.437500
v -1.500000 0.375000 0.437500
v -1.500000 -0.375000 0.437500
v -1.437500 -0.375000 0.437500
v -0.500000 0.500000 -0.125000
v -0.500000 0.500000 -0.375000
v -0.500000 -0.500000 -0.125000
v -0.500000 -0.500000 -0.375000
v -0.500000 0.437500 -0.125000
v -0.500000 -0.437500 -0.125000
v -0.500000 0.437500 -0.375000
v -1.437500 0.437500 -0.375000
v -1.437500 0.437500 -0.078125
v 0.437500 0.437500 -0.078125
v 0.437500 -0.437500 -0.078125
v -1.437500 -0.437500 -0.078125
v -1.437500 0.406250 -0.046875
v 0.437500 0.406250 -0.046875
v 0.437500 -0.406250 -0.046875
v -1.437500 -0.406250 -0.046875
v -1.437500 0.312500 -0.046875
v -1.062500 0.312500 -0.046875
v -1.062500 -0.312500 -0.046875
v -1.437500 -0.312500 -0.046875
v -0.500000 0.406250 -0.046875
v -0.500000 0.437500 -0.078125
v -0.500000 -0.406250 -0.046875
v -0.500000 -0.437500 -0.078125
v -1.437500 0.312500 -0.031250
v -1.062500 0.312500 -0.031250
v -1.062500 -0.312500 -0.031250
v -1.437500 -0.312500 -0.031250
v -1.375000 0.250000 0.031250
v -1.125000 0.250000 0.031250
v -1.125000 -0.250000 0.031250
v -1.375000 -0.250000 0.031250
v -1.437500 -0.437500 -0.375000
v -0.500000 -0.437500 -0.375000
v -1.375000 0.437500 -0.375000
v -1.375000 -0.437500 -0.375000
v 0.375000 0.437500 -0.375000
v 0.375000 -0.437500 -0.375000
v -1.375000 0.437500 -0.312500
v -1.375000 -0.437500 -0.312500
v 0.375000 0.437500 -0.312500
v 0.375000 -0.437500 -0.312500
v -1.000000 0.437500 -0.125000
v -1.000000 -0.437500 -0.125000
v -1.000000 0.437500 -0.078125
v -1.000000 -0.406250 -0.046875
v -1.000000 0.406250 -0.046875
v -1.000000 -0.437500 -0.078125
v -0.500000 0.437500 -0.312500
v -0.500000 -0.437500 -0.312500
v 0.437500 0.500000 -0.375000
v 0.437500 -0.500000 -0.375000
v -0.500000 0.500000 -0.375000
v -0.500000 -0.500000 -0.375000
v -0.500000 0.437500 -0.375000
v 0.437500 0.437500 -0.375000
v 0.437500 -0.437500 -0.375000
v -0.500000 -0.437500 -0.375000
v 0.375000 0.437500 -0.375000
v 0.375000 -0.437500 -0.375000
v 0.437500 0.375000 0.250000
v 0.500000 0.375000 0.250000
v 0.500000 -0.375000 0.250000
v 0.437500 -0.375000 0.250000
v 0.437500 0.375000 0.375000
v 0.500000 0.375000 0.375000
v 0.500000 -0.375000 0.375000
v 0.437500 -0.375000 0.375000
vt 1.000000 0.250000 vt 1.000000 0.250000
vt 0.062500 0.250000 vt 0.062500 0.250000
vt 0.062500 -0.000000 vt 0.062500 -0.000000
@ -233,16 +233,16 @@ vt 0.750000 0.125000
vt 0.812500 0.062500 vt 0.812500 0.062500
vt 0.812500 0.500000 vt 0.812500 0.500000
vt 0.187500 0.500000 vt 0.187500 0.500000
vn -1.000000 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 0.000000 -1.000000 0.000000 vn 0.000000 -1.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 0.000000 1.000000 vn 0.000000 0.000000 1.000000
vn 0.707100 0.707100 0.000000 vn 0.000000 0.000000 -1.000000
vn -0.707100 0.707100 0.000000 vn 1.000000 0.000000 0.000000
vn 0.000000 0.707100 -0.707100 vn -1.000000 0.000000 0.000000
vn 0.000000 0.707100 0.707100 vn 0.000000 -0.707100 0.707100
vn -0.000000 0.707100 0.707100
vn 0.707100 0.000000 0.707100
vn -0.707100 0.000000 0.707100
g Cube_Cube_frame-metal g Cube_Cube_frame-metal
s off s off
f 85/1/1 6/2/1 2/3/1 86/4/1 f 85/1/1 6/2/1 2/3/1 86/4/1

View File

@ -1,260 +1,260 @@
# Blender v2.73 (sub 0) OBJ File: 'bed-kingsize.blend' # Blender v2.72 (sub 0) OBJ File: 'bed-kingsize.blend'
# www.blender.org # www.blender.org
o Cube o Cube
v -0.500000 -0.375000 1.437500 v -1.437500 0.500000 -0.375000
v 0.500000 -0.375000 -0.437500 v 0.437500 -0.500000 -0.375000
v 0.500000 -0.375000 1.437500 v -1.437500 -0.500000 -0.375000
v 0.500000 -0.125000 -0.437500 v 0.437500 -0.500000 -0.125000
v 0.500000 -0.125000 1.437500 v -1.437500 -0.500000 -0.125000
v 0.437500 -0.125000 -0.437500 v 0.437500 -0.437500 -0.125000
v 0.437500 -0.125000 1.437500 v -1.437500 -0.437500 -0.125000
v 0.375000 -0.500000 -0.437500 v 0.437500 -0.375000 -0.500000
v 0.375000 -0.500000 -0.500000 v 0.500000 -0.375000 -0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.437500 v 0.437500 -0.500000 -0.500000
v 0.375000 0.187500 -0.437500 v 0.437500 -0.375000 0.187500
v 0.375000 0.187500 -0.500000 v 0.500000 -0.375000 0.187500
v 0.500000 0.187500 -0.500000 v 0.500000 -0.500000 0.187500
v 0.500000 0.187500 -0.437500 v 0.437500 -0.500000 0.187500
v -0.500000 -0.375000 -0.437500 v 0.437500 0.500000 -0.375000
v -0.500000 -0.375000 -0.500000 v 0.500000 0.500000 -0.375000
v 0.375000 -0.375000 -0.500000 v 0.500000 -0.375000 -0.375000
v 0.375000 -0.375000 -0.437500
v -0.500000 -0.125000 -0.437500
v -0.500000 -0.125000 -0.500000
v 0.375000 -0.125000 -0.500000
v 0.375000 -0.125000 -0.437500
v -0.500000 0.000000 -0.437500
v -0.500000 0.000000 -0.500000
v 0.375000 0.000000 -0.500000
v 0.375000 0.000000 -0.437500
v -0.500000 0.125000 -0.437500
v -0.500000 0.125000 -0.500000
v 0.375000 0.125000 -0.500000
v 0.375000 0.125000 -0.437500
v 0.375000 -0.500000 1.437500
v 0.375000 -0.500000 1.500000
v 0.500000 -0.500000 1.500000
v 0.500000 -0.500000 1.437500
v 0.375000 0.500000 1.437500
v 0.375000 0.500000 1.500000
v 0.500000 0.500000 1.500000
v 0.500000 0.500000 1.437500
v -0.500000 -0.375000 1.437500
v -0.500000 -0.375000 1.500000
v 0.375000 -0.375000 1.500000
v 0.375000 -0.375000 1.437500
v -0.500000 -0.125000 1.437500
v -0.500000 -0.125000 1.500000
v 0.375000 -0.125000 1.500000
v 0.375000 -0.125000 1.437500
v -0.500000 -0.062500 1.437500
v -0.500000 -0.062500 1.500000
v 0.375000 -0.062500 1.500000
v 0.375000 -0.062500 1.437500
v -0.500000 0.187500 1.437500
v -0.500000 0.187500 1.500000
v 0.375000 0.187500 1.500000
v 0.375000 0.187500 1.437500
v -0.500000 0.250000 1.437500
v -0.500000 0.250000 1.500000
v 0.375000 0.250000 1.500000
v 0.375000 0.250000 1.437500
v -0.500000 0.437500 1.437500
v -0.500000 0.437500 1.500000
v 0.375000 0.437500 1.500000
v 0.375000 0.437500 1.437500
v -0.500000 -0.375000 0.500000
v 0.500000 -0.125000 0.500000
v 0.500000 -0.375000 0.500000
v 0.437500 -0.125000 0.500000
v -0.437500 -0.375000 0.500000
v -0.437500 -0.375000 1.437500
v 0.437500 -0.078125 -0.437500
v 0.437500 -0.078125 1.437500
v -0.500000 -0.046875 1.437500
v -0.500000 -0.046875 -0.437500
v 0.406250 -0.046875 -0.437500
v 0.406250 -0.046875 1.437500
v -0.312500 -0.046875 1.437500
v -0.312500 -0.046875 1.062500
v 0.312500 -0.046875 1.062500
v 0.312500 -0.046875 1.437500
v -0.500000 -0.046875 0.500000
v 0.406250 -0.046875 0.500000
v 0.437500 -0.078125 0.500000
v -0.312500 -0.031250 1.437500
v -0.312500 -0.031250 1.062500
v 0.312500 -0.031250 1.062500
v 0.312500 -0.031250 1.437500
v -0.250000 0.031250 1.375000
v -0.250000 0.031250 1.125000
v 0.250000 0.031250 1.125000
v 0.250000 0.031250 1.375000
v 0.437500 -0.375000 1.437500
v 0.437500 -0.375000 0.500000
v -0.437500 -0.375000 1.375000
v 0.437500 -0.375000 1.375000
v -0.437500 -0.375000 -0.375000
v 0.437500 -0.375000 -0.375000 v 0.437500 -0.375000 -0.375000
v -0.437500 -0.312500 1.375000 v 0.437500 0.500000 -0.125000
v 0.437500 -0.312500 1.375000 v 0.500000 0.500000 -0.125000
v -0.437500 -0.312500 -0.375000 v 0.500000 -0.375000 -0.125000
v 0.437500 -0.312500 -0.375000 v 0.437500 -0.375000 -0.125000
v 0.437500 -0.125000 1.000000 v 0.437500 0.500000 0.000000
v 0.406250 -0.046875 1.000000 v 0.500000 0.500000 0.000000
v -0.500000 -0.046875 1.000000 v 0.500000 -0.375000 0.000000
v 0.437500 -0.078125 1.000000 v 0.437500 -0.375000 0.000000
v -0.437500 -0.312500 0.500000 v 0.437500 0.500000 0.125000
v 0.437500 -0.312500 0.500000 v 0.500000 0.500000 0.125000
v -0.500000 -0.375000 -0.437500 v 0.500000 -0.375000 0.125000
v 0.500000 -0.375000 -0.437500 v 0.437500 -0.375000 0.125000
v -0.500000 -0.375000 0.500000 v -1.437500 -0.375000 -0.500000
v 0.500000 -0.375000 0.500000 v -1.500000 -0.375000 -0.500000
v -0.437500 -0.375000 0.500000
v -0.437500 -0.375000 -0.437500
v 0.437500 -0.375000 -0.437500
v 0.437500 -0.375000 0.500000
v -0.437500 -0.375000 -0.375000
v 0.437500 -0.375000 -0.375000
v -1.500000 -0.375000 1.437500
v -1.500000 -0.375000 -0.437500
v -0.500000 -0.375000 1.437500
v -1.500000 -0.125000 1.437500
v -1.500000 -0.125000 -0.437500
v -1.437500 -0.125000 1.437500
v -1.437500 -0.125000 -0.437500
v -1.500000 -0.500000 -0.437500
v -1.500000 -0.500000 -0.500000 v -1.500000 -0.500000 -0.500000
v -1.375000 -0.500000 -0.500000 v -1.437500 -0.500000 -0.500000
v -1.375000 -0.500000 -0.437500
v -1.500000 0.187500 -0.437500
v -1.500000 0.187500 -0.500000
v -1.375000 0.187500 -0.500000
v -1.375000 0.187500 -0.437500
v -1.375000 -0.375000 -0.437500
v -1.375000 -0.375000 -0.500000
v -0.500000 -0.375000 -0.500000
v -0.500000 -0.375000 -0.437500
v -1.375000 -0.125000 -0.437500
v -1.375000 -0.125000 -0.500000
v -0.500000 -0.125000 -0.500000
v -0.500000 -0.125000 -0.437500
v -1.375000 0.000000 -0.437500
v -1.375000 0.000000 -0.500000
v -0.500000 0.000000 -0.500000
v -0.500000 0.000000 -0.437500
v -1.375000 0.125000 -0.437500
v -1.375000 0.125000 -0.500000
v -0.500000 0.125000 -0.500000
v -0.500000 0.125000 -0.437500
v -1.500000 -0.500000 1.437500
v -1.500000 -0.500000 1.500000
v -1.375000 -0.500000 1.500000
v -1.375000 -0.500000 1.437500
v -1.500000 0.500000 1.437500
v -1.500000 0.500000 1.500000
v -1.375000 0.500000 1.500000
v -1.375000 0.500000 1.437500
v -1.375000 -0.375000 1.437500
v -1.375000 -0.375000 1.500000
v -0.500000 -0.375000 1.500000
v -0.500000 -0.375000 1.437500
v -1.375000 -0.125000 1.437500
v -1.375000 -0.125000 1.500000
v -0.500000 -0.125000 1.500000
v -0.500000 -0.125000 1.437500
v -1.375000 -0.062500 1.437500
v -1.375000 -0.062500 1.500000
v -0.500000 -0.062500 1.500000
v -0.500000 -0.062500 1.437500
v -1.375000 0.187500 1.437500
v -1.375000 0.187500 1.500000
v -0.500000 0.187500 1.500000
v -0.500000 0.187500 1.437500
v -1.375000 0.250000 1.437500
v -1.375000 0.250000 1.500000
v -0.500000 0.250000 1.500000
v -0.500000 0.250000 1.437500
v -1.375000 0.437500 1.437500
v -1.375000 0.437500 1.500000
v -0.500000 0.437500 1.500000
v -0.500000 0.437500 1.437500
v -1.500000 -0.125000 0.500000
v -1.500000 -0.375000 0.500000
v -0.500000 -0.375000 0.500000
v -1.437500 -0.125000 0.500000
v -1.437500 -0.375000 0.500000 v -1.437500 -0.375000 0.500000
v -1.437500 -0.375000 1.437500
v -1.437500 -0.078125 1.437500
v -1.437500 -0.078125 -0.437500
v -1.406250 -0.046875 1.437500
v -1.406250 -0.046875 -0.437500
v -0.500000 -0.046875 -0.437500
v -0.500000 -0.046875 1.437500
v -1.312500 -0.046875 1.437500
v -1.312500 -0.046875 1.062500
v -0.687500 -0.046875 1.062500
v -0.687500 -0.046875 1.437500
v -1.406250 -0.046875 0.500000
v -1.437500 -0.078125 0.500000
v -0.500000 -0.046875 0.500000
v -1.312500 -0.031250 1.437500
v -1.312500 -0.031250 1.062500
v -0.687500 -0.031250 1.062500
v -0.687500 -0.031250 1.437500
v -1.250000 0.031250 1.375000
v -1.250000 0.031250 1.125000
v -0.750000 0.031250 1.125000
v -0.750000 0.031250 1.375000
v -0.562500 -0.375000 1.437500
v -0.562500 -0.375000 0.500000
v -1.437500 -0.375000 1.375000
v -0.562500 -0.375000 1.375000
v -1.437500 -0.375000 -0.375000
v -0.562500 -0.375000 -0.375000
v -1.437500 -0.312500 1.375000
v -0.562500 -0.312500 1.375000
v -1.437500 -0.312500 -0.375000
v -0.562500 -0.312500 -0.375000
v -1.437500 -0.125000 1.000000
v -1.437500 -0.078125 1.000000
v -0.500000 -0.046875 1.000000
v -1.406250 -0.046875 1.000000
v -1.437500 -0.312500 0.500000
v -0.562500 -0.312500 0.500000
v -1.500000 -0.375000 -0.437500
v -0.500000 -0.375000 -0.437500
v -1.500000 -0.375000 0.500000 v -1.500000 -0.375000 0.500000
v -0.500000 -0.375000 0.500000 v -1.500000 -0.500000 0.500000
v -1.437500 -0.375000 0.500000 v -1.437500 -0.500000 0.500000
v -1.437500 -0.375000 -0.437500 v -1.437500 0.500000 -0.375000
v -0.562500 -0.375000 -0.437500 v -1.500000 0.500000 -0.375000
v -0.562500 -0.375000 0.500000 v -1.500000 -0.375000 -0.375000
v -1.437500 -0.375000 -0.375000 v -1.437500 -0.375000 -0.375000
v -0.562500 -0.375000 -0.375000 v -1.437500 0.500000 -0.125000
v -0.500000 -0.125000 -0.437500 v -1.500000 0.500000 -0.125000
v -0.500000 -0.046875 1.437500 v -1.500000 -0.375000 -0.125000
v -0.500000 -0.125000 1.437500 v -1.437500 -0.375000 -0.125000
v -0.500000 -0.078125 1.437500 v -1.437500 0.500000 -0.062500
v -0.500000 -0.046875 -0.437500 v -1.500000 0.500000 -0.062500
v -0.500000 -0.078125 -0.437500 v -1.500000 -0.375000 -0.062500
v -0.562500 -0.500000 -0.375000 v -1.437500 -0.375000 -0.062500
v -0.562500 -0.500000 -0.437500 v -1.437500 0.500000 0.187500
v -0.437500 -0.500000 -0.437500 v -1.500000 0.500000 0.187500
v -0.437500 -0.500000 -0.375000 v -1.500000 -0.375000 0.187500
v -0.562500 -0.375000 -0.375000 v -1.437500 -0.375000 0.187500
v -0.562500 -0.375000 -0.437500 v -1.437500 0.500000 0.250000
v -0.437500 -0.375000 -0.437500 v -1.500000 0.500000 0.250000
v -0.437500 -0.375000 -0.375000 v -1.500000 -0.375000 0.250000
v -0.562500 -0.500000 1.437500 v -1.437500 -0.375000 0.250000
v -0.562500 -0.500000 1.375000 v -1.437500 0.500000 0.437500
v -0.437500 -0.500000 1.375000 v -1.500000 0.500000 0.437500
v -0.437500 -0.500000 1.437500 v -1.500000 -0.375000 0.437500
v -0.562500 -0.375000 1.437500 v -1.437500 -0.375000 0.437500
v -0.562500 -0.375000 1.375000 v -0.500000 0.500000 -0.375000
v -0.437500 -0.375000 1.375000 v -0.500000 -0.500000 -0.125000
v -0.437500 -0.375000 1.437500 v -0.500000 -0.500000 -0.375000
v -0.500000 -0.437500 -0.125000
v -0.500000 0.437500 -0.375000
v -1.437500 0.437500 -0.375000
v 0.437500 -0.437500 -0.078125
v -1.437500 -0.437500 -0.078125
v -1.437500 0.500000 -0.046875
v 0.437500 0.500000 -0.046875
v 0.437500 -0.406250 -0.046875
v -1.437500 -0.406250 -0.046875
v -1.437500 0.312500 -0.046875
v -1.062500 0.312500 -0.046875
v -1.062500 -0.312500 -0.046875
v -1.437500 -0.312500 -0.046875
v -0.500000 0.500000 -0.046875
v -0.500000 -0.406250 -0.046875
v -0.500000 -0.437500 -0.078125
v -1.437500 0.312500 -0.031250
v -1.062500 0.312500 -0.031250
v -1.062500 -0.312500 -0.031250
v -1.437500 -0.312500 -0.031250
v -1.375000 0.250000 0.031250
v -1.125000 0.250000 0.031250
v -1.125000 -0.250000 0.031250
v -1.375000 -0.250000 0.031250
v -1.437500 -0.437500 -0.375000
v -0.500000 -0.437500 -0.375000
v -1.375000 0.437500 -0.375000
v -1.375000 -0.437500 -0.375000
v 0.375000 0.437500 -0.375000
v 0.375000 -0.437500 -0.375000
v -1.375000 0.437500 -0.312500
v -1.375000 -0.437500 -0.312500
v 0.375000 0.437500 -0.312500
v 0.375000 -0.437500 -0.312500
v -1.000000 -0.437500 -0.125000
v -1.000000 -0.406250 -0.046875
v -1.000000 0.500000 -0.046875
v -1.000000 -0.437500 -0.078125
v -0.500000 0.437500 -0.312500
v -0.500000 -0.437500 -0.312500
v 0.437500 0.500000 -0.375000
v 0.437500 -0.500000 -0.375000
v -0.500000 0.500000 -0.375000
v -0.500000 -0.500000 -0.375000
v -0.500000 0.437500 -0.375000
v 0.437500 0.437500 -0.375000
v 0.437500 -0.437500 -0.375000
v -0.500000 -0.437500 -0.375000
v 0.375000 0.437500 -0.375000
v 0.375000 -0.437500 -0.375000
v -1.437500 1.500000 -0.375000
v 0.437500 1.500000 -0.375000
v -1.437500 0.500000 -0.375000
v -1.437500 1.500000 -0.125000
v 0.437500 1.500000 -0.125000
v -1.437500 1.437500 -0.125000
v 0.437500 1.437500 -0.125000
v 0.437500 1.500000 -0.500000
v 0.500000 1.500000 -0.500000
v 0.500000 1.375000 -0.500000
v 0.437500 1.375000 -0.500000
v 0.437500 1.500000 0.187500
v 0.500000 1.500000 0.187500
v 0.500000 1.375000 0.187500
v 0.437500 1.375000 0.187500
v 0.437500 1.375000 -0.375000
v 0.500000 1.375000 -0.375000
v 0.500000 0.500000 -0.375000
v 0.437500 0.500000 -0.375000
v 0.437500 1.375000 -0.125000
v 0.500000 1.375000 -0.125000
v 0.500000 0.500000 -0.125000
v 0.437500 0.500000 -0.125000
v 0.437500 1.375000 0.000000
v 0.500000 1.375000 0.000000
v 0.500000 0.500000 0.000000
v 0.437500 0.500000 0.000000
v 0.437500 1.375000 0.125000
v 0.500000 1.375000 0.125000
v 0.500000 0.500000 0.125000
v 0.437500 0.500000 0.125000
v -1.437500 1.500000 -0.500000
v -1.500000 1.500000 -0.500000
v -1.500000 1.375000 -0.500000
v -1.437500 1.375000 -0.500000
v -1.437500 1.500000 0.500000
v -1.500000 1.500000 0.500000
v -1.500000 1.375000 0.500000
v -1.437500 1.375000 0.500000
v -1.437500 1.375000 -0.375000
v -1.500000 1.375000 -0.375000
v -1.500000 0.500000 -0.375000
v -1.437500 0.500000 -0.375000
v -1.437500 1.375000 -0.125000
v -1.500000 1.375000 -0.125000
v -1.500000 0.500000 -0.125000
v -1.437500 0.500000 -0.125000
v -1.437500 1.375000 -0.062500
v -1.500000 1.375000 -0.062500
v -1.500000 0.500000 -0.062500
v -1.437500 0.500000 -0.062500
v -1.437500 1.375000 0.187500
v -1.500000 1.375000 0.187500
v -1.500000 0.500000 0.187500
v -1.437500 0.500000 0.187500
v -1.437500 1.375000 0.250000
v -1.500000 1.375000 0.250000
v -1.500000 0.500000 0.250000
v -1.437500 0.500000 0.250000
v -1.437500 1.375000 0.437500
v -1.500000 1.375000 0.437500
v -1.500000 0.500000 0.437500
v -1.437500 0.500000 0.437500
v -0.500000 1.500000 -0.125000
v -0.500000 1.500000 -0.375000
v -0.500000 0.500000 -0.375000
v -0.500000 1.437500 -0.125000
v -0.500000 1.437500 -0.375000
v -1.437500 1.437500 -0.375000
v -1.437500 1.437500 -0.078125
v 0.437500 1.437500 -0.078125
v -1.437500 1.406250 -0.046875
v 0.437500 1.406250 -0.046875
v 0.437500 0.500000 -0.046875
v -1.437500 0.500000 -0.046875
v -1.437500 1.312500 -0.046875
v -1.062500 1.312500 -0.046875
v -1.062500 0.687500 -0.046875
v -1.437500 0.687500 -0.046875
v -0.500000 1.406250 -0.046875
v -0.500000 1.437500 -0.078125
v -0.500000 0.500000 -0.046875
v -1.437500 1.312500 -0.031250
v -1.062500 1.312500 -0.031250
v -1.062500 0.687500 -0.031250
v -1.437500 0.687500 -0.031250
v -1.375000 1.250000 0.031250
v -1.125000 1.250000 0.031250
v -1.125000 0.750000 0.031250
v -1.375000 0.750000 0.031250
v -1.437500 0.562500 -0.375000
v -0.500000 0.562500 -0.375000
v -1.375000 1.437500 -0.375000
v -1.375000 0.562500 -0.375000
v 0.375000 1.437500 -0.375000
v 0.375000 0.562500 -0.375000
v -1.375000 1.437500 -0.312500
v -1.375000 0.562500 -0.312500
v 0.375000 1.437500 -0.312500
v 0.375000 0.562500 -0.312500
v -1.000000 1.437500 -0.125000
v -1.000000 1.437500 -0.078125
v -1.000000 0.500000 -0.046875
v -1.000000 1.406250 -0.046875
v -0.500000 1.437500 -0.312500
v -0.500000 0.562500 -0.312500
v 0.437500 1.500000 -0.375000
v 0.437500 0.500000 -0.375000
v -0.500000 1.500000 -0.375000
v -0.500000 0.500000 -0.375000
v -0.500000 1.437500 -0.375000
v 0.437500 1.437500 -0.375000
v 0.437500 0.562500 -0.375000
v -0.500000 0.562500 -0.375000
v 0.375000 1.437500 -0.375000
v 0.375000 0.562500 -0.375000
v 0.437500 0.500000 -0.125000
v -1.437500 0.500000 -0.046875
v -1.437500 0.500000 -0.125000
v -1.437500 0.500000 -0.078125
v 0.437500 0.500000 -0.046875
v 0.437500 0.500000 -0.078125
v 0.375000 0.562500 -0.500000
v 0.437500 0.562500 -0.500000
v 0.437500 0.437500 -0.500000
v 0.375000 0.437500 -0.500000
v 0.375000 0.562500 -0.375000
v 0.437500 0.562500 -0.375000
v 0.437500 0.437500 -0.375000
v 0.375000 0.437500 -0.375000
v -1.437500 0.562500 -0.500000
v -1.375000 0.562500 -0.500000
v -1.375000 0.437500 -0.500000
v -1.437500 0.437500 -0.500000
v -1.437500 0.562500 -0.375000
v -1.375000 0.562500 -0.375000
v -1.375000 0.437500 -0.375000
v -1.437500 0.437500 -0.375000
vt 1.000000 0.250000 vt 1.000000 0.250000
vt 0.062500 0.250000 vt 0.062500 0.250000
vt 0.062500 -0.000000 vt 0.062500 -0.000000
@ -361,16 +361,16 @@ vt 0.750000 0.125000
vt 0.812500 0.062500 vt 0.812500 0.062500
vt 0.812500 0.500000 vt 0.812500 0.500000
vt 0.187500 0.500000 vt 0.187500 0.500000
vn 1.000000 0.000000 0.000000
vn 0.000000 1.000000 0.000000
vn 0.000000 -1.000000 0.000000 vn 0.000000 -1.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 0.000000 1.000000 vn 0.000000 0.000000 1.000000
vn 0.000000 0.000000 -1.000000
vn 1.000000 0.000000 0.000000
vn -1.000000 0.000000 0.000000 vn -1.000000 0.000000 0.000000
vn 0.707100 0.707100 0.000000 vn -0.000000 1.000000 0.000000
vn -0.707100 0.707100 0.000000 vn 0.000000 -0.707100 0.707100
vn 0.000000 0.707100 -0.707100
vn 0.000000 0.707100 0.707100 vn 0.000000 0.707100 0.707100
vn 0.707100 0.000000 0.707100
vn -0.707100 0.000000 0.707100
g Cube_Cube_frame-metal g Cube_Cube_frame-metal
s off s off
f 65/1/1 5/2/1 3/3/1 66/4/1 f 65/1/1 5/2/1 3/3/1 66/4/1

View File

@ -1,150 +1,150 @@
# Blender v2.73 (sub 0) OBJ File: 'bed.blend' # Blender v2.72 (sub 0) OBJ File: 'bed.blend'
# www.blender.org # www.blender.org
o Cube o Cube
v -0.500000 -0.375000 1.437500 v -1.437500 0.500000 -0.375000
v -0.500000 -0.375000 -0.437500 v 0.437500 0.500000 -0.375000
v 0.500000 -0.375000 -0.437500 v 0.437500 -0.500000 -0.375000
v 0.500000 -0.375000 1.437500 v -1.437500 -0.500000 -0.375000
v -0.500000 -0.125000 1.437500 v -1.437500 0.500000 -0.125000
v -0.500000 -0.125000 -0.437500 v 0.437500 0.500000 -0.125000
v 0.500000 -0.125000 -0.437500 v 0.437500 -0.500000 -0.125000
v 0.500000 -0.125000 1.437500 v -1.437500 -0.500000 -0.125000
v -0.437500 -0.125000 1.437500 v -1.437500 0.437500 -0.125000
v -0.437500 -0.125000 -0.437500 v 0.437500 0.437500 -0.125000
v 0.437500 -0.125000 -0.437500 v 0.437500 -0.437500 -0.125000
v 0.437500 -0.125000 1.437500 v -1.437500 -0.437500 -0.125000
v 0.375000 -0.500000 -0.437500 v 0.437500 -0.375000 -0.500000
v 0.375000 -0.500000 -0.500000 v 0.500000 -0.375000 -0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.437500 v 0.437500 -0.500000 -0.500000
v 0.375000 0.187500 -0.437500 v 0.437500 -0.375000 0.187500
v 0.375000 0.187500 -0.500000 v 0.500000 -0.375000 0.187500
v 0.500000 0.187500 -0.500000 v 0.500000 -0.500000 0.187500
v 0.500000 0.187500 -0.437500 v 0.437500 -0.500000 0.187500
v -0.500000 -0.500000 -0.437500 v 0.437500 0.500000 -0.500000
v -0.500000 -0.500000 -0.500000 v 0.500000 0.500000 -0.500000
v -0.375000 -0.500000 -0.500000 v 0.500000 0.375000 -0.500000
v -0.375000 -0.500000 -0.437500 v 0.437500 0.375000 -0.500000
v -0.500000 0.187500 -0.437500 v 0.437500 0.500000 0.187500
v -0.500000 0.187500 -0.500000 v 0.500000 0.500000 0.187500
v -0.375000 0.187500 -0.500000 v 0.500000 0.375000 0.187500
v -0.375000 0.187500 -0.437500 v 0.437500 0.375000 0.187500
v -0.375000 -0.375000 -0.437500 v 0.437500 0.375000 -0.375000
v -0.375000 -0.375000 -0.500000 v 0.500000 0.375000 -0.375000
v 0.375000 -0.375000 -0.500000 v 0.500000 -0.375000 -0.375000
v 0.375000 -0.375000 -0.437500
v -0.375000 -0.125000 -0.437500
v -0.375000 -0.125000 -0.500000
v 0.375000 -0.125000 -0.500000
v 0.375000 -0.125000 -0.437500
v -0.375000 0.000000 -0.437500
v -0.375000 0.000000 -0.500000
v 0.375000 0.000000 -0.500000
v 0.375000 0.000000 -0.437500
v -0.375000 0.125000 -0.437500
v -0.375000 0.125000 -0.500000
v 0.375000 0.125000 -0.500000
v 0.375000 0.125000 -0.437500
v 0.375000 -0.500000 1.437500
v 0.375000 -0.500000 1.500000
v 0.500000 -0.500000 1.500000
v 0.500000 -0.500000 1.437500
v 0.375000 0.500000 1.437500
v 0.375000 0.500000 1.500000
v 0.500000 0.500000 1.500000
v 0.500000 0.500000 1.437500
v -0.500000 -0.500000 1.437500
v -0.500000 -0.500000 1.500000
v -0.375000 -0.500000 1.500000
v -0.375000 -0.500000 1.437500
v -0.500000 0.500000 1.437500
v -0.500000 0.500000 1.500000
v -0.375000 0.500000 1.500000
v -0.375000 0.500000 1.437500
v -0.375000 -0.375000 1.437500
v -0.375000 -0.375000 1.500000
v 0.375000 -0.375000 1.500000
v 0.375000 -0.375000 1.437500
v -0.375000 -0.125000 1.437500
v -0.375000 -0.125000 1.500000
v 0.375000 -0.125000 1.500000
v 0.375000 -0.125000 1.437500
v -0.375000 -0.062500 1.437500
v -0.375000 -0.062500 1.500000
v 0.375000 -0.062500 1.500000
v 0.375000 -0.062500 1.437500
v -0.375000 0.187500 1.437500
v -0.375000 0.187500 1.500000
v 0.375000 0.187500 1.500000
v 0.375000 0.187500 1.437500
v -0.375000 0.250000 1.437500
v -0.375000 0.250000 1.500000
v 0.375000 0.250000 1.500000
v 0.375000 0.250000 1.437500
v -0.375000 0.437500 1.437500
v -0.375000 0.437500 1.500000
v 0.375000 0.437500 1.500000
v 0.375000 0.437500 1.437500
v -0.500000 -0.125000 0.500000
v -0.500000 -0.375000 0.500000
v 0.500000 -0.125000 0.500000
v 0.500000 -0.375000 0.500000
v -0.437500 -0.125000 0.500000
v 0.437500 -0.125000 0.500000
v -0.437500 -0.375000 0.500000
v -0.437500 -0.375000 1.437500
v -0.437500 -0.078125 1.437500
v -0.437500 -0.078125 -0.437500
v 0.437500 -0.078125 -0.437500
v 0.437500 -0.078125 1.437500
v -0.406250 -0.046875 1.437500
v -0.406250 -0.046875 -0.437500
v 0.406250 -0.046875 -0.437500
v 0.406250 -0.046875 1.437500
v -0.312500 -0.046875 1.437500
v -0.312500 -0.046875 1.062500
v 0.312500 -0.046875 1.062500
v 0.312500 -0.046875 1.437500
v -0.406250 -0.046875 0.500000
v -0.437500 -0.078125 0.500000
v 0.406250 -0.046875 0.500000
v 0.437500 -0.078125 0.500000
v -0.312500 -0.031250 1.437500
v -0.312500 -0.031250 1.062500
v 0.312500 -0.031250 1.062500
v 0.312500 -0.031250 1.437500
v -0.250000 0.031250 1.375000
v -0.250000 0.031250 1.125000
v 0.250000 0.031250 1.125000
v 0.250000 0.031250 1.375000
v 0.437500 -0.375000 1.437500
v 0.437500 -0.375000 0.500000
v -0.437500 -0.375000 1.375000
v 0.437500 -0.375000 1.375000
v -0.437500 -0.375000 -0.375000
v 0.437500 -0.375000 -0.375000
v -0.437500 -0.312500 1.375000
v 0.437500 -0.312500 1.375000
v -0.437500 -0.312500 -0.375000
v 0.437500 -0.312500 -0.375000
v -0.437500 -0.125000 1.000000
v 0.437500 -0.125000 1.000000
v -0.437500 -0.078125 1.000000
v 0.406250 -0.046875 1.000000
v -0.406250 -0.046875 1.000000
v 0.437500 -0.078125 1.000000
v -0.437500 -0.312500 0.500000
v 0.437500 -0.312500 0.500000
v -0.500000 -0.375000 -0.437500
v 0.500000 -0.375000 -0.437500
v -0.500000 -0.375000 0.500000
v 0.500000 -0.375000 0.500000
v -0.437500 -0.375000 0.500000
v -0.437500 -0.375000 -0.437500
v 0.437500 -0.375000 -0.437500
v 0.437500 -0.375000 0.500000
v -0.437500 -0.375000 -0.375000
v 0.437500 -0.375000 -0.375000 v 0.437500 -0.375000 -0.375000
v 0.437500 0.375000 -0.125000
v 0.500000 0.375000 -0.125000
v 0.500000 -0.375000 -0.125000
v 0.437500 -0.375000 -0.125000
v 0.437500 0.375000 0.000000
v 0.500000 0.375000 0.000000
v 0.500000 -0.375000 0.000000
v 0.437500 -0.375000 0.000000
v 0.437500 0.375000 0.125000
v 0.500000 0.375000 0.125000
v 0.500000 -0.375000 0.125000
v 0.437500 -0.375000 0.125000
v -1.437500 -0.375000 -0.500000
v -1.500000 -0.375000 -0.500000
v -1.500000 -0.500000 -0.500000
v -1.437500 -0.500000 -0.500000
v -1.437500 -0.375000 0.500000
v -1.500000 -0.375000 0.500000
v -1.500000 -0.500000 0.500000
v -1.437500 -0.500000 0.500000
v -1.437500 0.500000 -0.500000
v -1.500000 0.500000 -0.500000
v -1.500000 0.375000 -0.500000
v -1.437500 0.375000 -0.500000
v -1.437500 0.500000 0.500000
v -1.500000 0.500000 0.500000
v -1.500000 0.375000 0.500000
v -1.437500 0.375000 0.500000
v -1.437500 0.375000 -0.375000
v -1.500000 0.375000 -0.375000
v -1.500000 -0.375000 -0.375000
v -1.437500 -0.375000 -0.375000
v -1.437500 0.375000 -0.125000
v -1.500000 0.375000 -0.125000
v -1.500000 -0.375000 -0.125000
v -1.437500 -0.375000 -0.125000
v -1.437500 0.375000 -0.062500
v -1.500000 0.375000 -0.062500
v -1.500000 -0.375000 -0.062500
v -1.437500 -0.375000 -0.062500
v -1.437500 0.375000 0.187500
v -1.500000 0.375000 0.187500
v -1.500000 -0.375000 0.187500
v -1.437500 -0.375000 0.187500
v -1.437500 0.375000 0.250000
v -1.500000 0.375000 0.250000
v -1.500000 -0.375000 0.250000
v -1.437500 -0.375000 0.250000
v -1.437500 0.375000 0.437500
v -1.500000 0.375000 0.437500
v -1.500000 -0.375000 0.437500
v -1.437500 -0.375000 0.437500
v -0.500000 0.500000 -0.125000
v -0.500000 0.500000 -0.375000
v -0.500000 -0.500000 -0.125000
v -0.500000 -0.500000 -0.375000
v -0.500000 0.437500 -0.125000
v -0.500000 -0.437500 -0.125000
v -0.500000 0.437500 -0.375000
v -1.437500 0.437500 -0.375000
v -1.437500 0.437500 -0.078125
v 0.437500 0.437500 -0.078125
v 0.437500 -0.437500 -0.078125
v -1.437500 -0.437500 -0.078125
v -1.437500 0.406250 -0.046875
v 0.437500 0.406250 -0.046875
v 0.437500 -0.406250 -0.046875
v -1.437500 -0.406250 -0.046875
v -1.437500 0.312500 -0.046875
v -1.062500 0.312500 -0.046875
v -1.062500 -0.312500 -0.046875
v -1.437500 -0.312500 -0.046875
v -0.500000 0.406250 -0.046875
v -0.500000 0.437500 -0.078125
v -0.500000 -0.406250 -0.046875
v -0.500000 -0.437500 -0.078125
v -1.437500 0.312500 -0.031250
v -1.062500 0.312500 -0.031250
v -1.062500 -0.312500 -0.031250
v -1.437500 -0.312500 -0.031250
v -1.375000 0.250000 0.031250
v -1.125000 0.250000 0.031250
v -1.125000 -0.250000 0.031250
v -1.375000 -0.250000 0.031250
v -1.437500 -0.437500 -0.375000
v -0.500000 -0.437500 -0.375000
v -1.375000 0.437500 -0.375000
v -1.375000 -0.437500 -0.375000
v 0.375000 0.437500 -0.375000
v 0.375000 -0.437500 -0.375000
v -1.375000 0.437500 -0.312500
v -1.375000 -0.437500 -0.312500
v 0.375000 0.437500 -0.312500
v 0.375000 -0.437500 -0.312500
v -1.000000 0.437500 -0.125000
v -1.000000 -0.437500 -0.125000
v -1.000000 0.437500 -0.078125
v -1.000000 -0.406250 -0.046875
v -1.000000 0.406250 -0.046875
v -1.000000 -0.437500 -0.078125
v -0.500000 0.437500 -0.312500
v -0.500000 -0.437500 -0.312500
v 0.437500 0.500000 -0.375000
v 0.437500 -0.500000 -0.375000
v -0.500000 0.500000 -0.375000
v -0.500000 -0.500000 -0.375000
v -0.500000 0.437500 -0.375000
v 0.437500 0.437500 -0.375000
v 0.437500 -0.437500 -0.375000
v -0.500000 -0.437500 -0.375000
v 0.375000 0.437500 -0.375000
v 0.375000 -0.437500 -0.375000
vt 1.000000 0.250000 vt 1.000000 0.250000
vt 0.062500 0.250000 vt 0.062500 0.250000
vt 0.062500 -0.000000 vt 0.062500 -0.000000
@ -227,16 +227,16 @@ vt 0.750000 0.125000
vt 0.812500 0.062500 vt 0.812500 0.062500
vt 0.812500 0.500000 vt 0.812500 0.500000
vt 0.187500 0.500000 vt 0.187500 0.500000
vn -1.000000 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 0.000000 -1.000000 0.000000 vn 0.000000 -1.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 0.000000 1.000000 vn 0.000000 0.000000 1.000000
vn 0.707100 0.707100 0.000000 vn 0.000000 0.000000 -1.000000
vn -0.707100 0.707100 0.000000 vn 1.000000 0.000000 0.000000
vn 0.000000 0.707100 -0.707100 vn -1.000000 0.000000 0.000000
vn 0.000000 0.707100 0.707100 vn 0.000000 -0.707100 0.707100
vn -0.000000 0.707100 0.707100
vn 0.707100 0.000000 0.707100
vn -0.707100 0.000000 0.707100
g Cube_Cube_frame-metal g Cube_Cube_frame-metal
s off s off
f 85/1/1 6/2/1 2/3/1 86/4/1 f 85/1/1 6/2/1 2/3/1 86/4/1

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -1,85 +1,85 @@
# Blender v2.73 (sub 0) OBJ File: 'kitchen-chair.blend' # Blender v2.72 (sub 0) OBJ File: 'kitchen-chair.blend'
# www.blender.org # www.blender.org
o Cylinder o Cylinder
v 0.312500 -0.125000 0.187500 v -0.187500 -0.312500 -0.125000
v -0.312500 -0.125000 0.187500 v -0.187500 0.312500 -0.125000
v 0.312500 -0.500000 -0.312500 v 0.312500 -0.312500 -0.500000
v 0.312500 -0.500000 -0.187500 v 0.187500 -0.312500 -0.500000
v 0.187500 -0.500000 -0.187500 v 0.187500 -0.187500 -0.500000
v 0.187500 -0.500000 -0.312500 v 0.312500 -0.187500 -0.500000
v 0.312500 -0.125000 -0.312500 v 0.312500 -0.312500 -0.125000
v 0.312500 -0.125000 -0.187500 v 0.187500 -0.312500 -0.125000
v 0.187500 -0.125000 -0.187500 v 0.187500 -0.187500 -0.125000
v 0.187500 -0.125000 -0.312500 v 0.312500 -0.187500 -0.125000
v -0.187500 -0.500000 -0.312500 v 0.312500 0.187500 -0.500000
v -0.187500 -0.500000 -0.187500 v 0.187500 0.187500 -0.500000
v -0.312500 -0.500000 -0.187500 v 0.187500 0.312500 -0.500000
v -0.187500 -0.125000 -0.312500 v 0.312500 0.187500 -0.125000
v -0.187500 -0.125000 -0.187500 v 0.187500 0.187500 -0.125000
v -0.312500 -0.125000 -0.187500 v 0.187500 0.312500 -0.125000
v -0.312500 -0.125000 -0.312500 v 0.312500 0.312500 -0.125000
v 0.312500 -0.062500 0.187500 v -0.187500 -0.312500 -0.062500
v 0.312500 -0.062500 -0.312500 v 0.312500 -0.312500 -0.062500
v -0.312500 -0.062500 -0.312500 v 0.312500 0.312500 -0.062500
v 0.312500 0.000000 0.187500 v -0.187500 -0.312500 0.000000
v -0.312500 0.000000 0.187500 v -0.187500 0.312500 0.000000
v 0.312500 0.000000 -0.312500 v 0.312500 -0.312500 0.000000
v -0.312500 0.000000 -0.312500 v 0.312500 0.312500 0.000000
v 0.312500 0.500000 0.312500 v -0.312500 -0.312500 0.500000
v 0.312500 0.500000 0.187500 v -0.187500 -0.312500 0.500000
v 0.187500 0.500000 0.187500 v -0.187500 -0.187500 0.500000
v 0.187500 0.500000 0.312500 v -0.312500 -0.187500 0.500000
v -0.187500 0.500000 0.312500 v -0.312500 0.187500 0.500000
v -0.187500 0.500000 0.187500 v -0.187500 0.187500 0.500000
v -0.312500 0.500000 0.187500 v -0.187500 0.312500 0.500000
v -0.312500 0.500000 0.312500 v -0.312500 0.312500 0.500000
v -0.312500 -0.062500 0.187500 v -0.187500 0.312500 -0.062500
v 0.187500 0.437500 0.257812 v -0.257812 -0.187500 0.437500
v -0.187500 0.437500 0.257813 v -0.257813 0.187500 0.437500
v 0.187500 0.062500 0.257812 v -0.257812 -0.187500 0.062500
v -0.187500 0.062500 0.257813 v -0.257813 0.187500 0.062500
v 0.187500 0.437500 0.242187 v -0.242187 -0.187500 0.437500
v -0.187500 0.437500 0.242187 v -0.242187 0.187500 0.437500
v 0.187500 0.062500 0.242188 v -0.242188 -0.187500 0.062500
v -0.187500 0.062500 0.242188 v -0.242188 0.187500 0.062500
v -0.187500 -0.500000 -0.312500 v 0.312500 0.187500 -0.500000
v -0.187500 -0.500000 -0.187500 v 0.187500 0.187500 -0.500000
v -0.312500 -0.500000 -0.187500 v 0.187500 0.312500 -0.500000
v -0.312500 -0.500000 -0.312500 v 0.312500 0.312500 -0.500000
v -0.187500 -0.125000 -0.312500 v 0.312500 0.187500 -0.125000
v -0.312500 -0.125000 -0.187500 v 0.187500 0.312500 -0.125000
v -0.312500 -0.125000 -0.312500 v 0.312500 0.312500 -0.125000
v 0.312500 -0.500000 0.187500 v -0.187500 -0.312500 -0.500000
v 0.187500 -0.500000 0.312500 v -0.312500 -0.187500 -0.500000
v 0.187500 -0.500000 0.187500 v -0.187500 -0.187500 -0.500000
v 0.312500 0.500000 0.187500 v -0.187500 -0.312500 0.500000
v 0.187500 0.500000 0.312500 v -0.312500 -0.187500 0.500000
v 0.187500 0.500000 0.187500 v -0.187500 -0.187500 0.500000
v -0.187500 0.500000 0.187500 v -0.187500 0.187500 0.500000
v -0.312500 -0.500000 0.187500 v -0.187500 0.312500 -0.500000
v 0.312500 0.500000 0.312500 v -0.312500 -0.312500 0.500000
v 0.312500 0.500000 0.187500 v -0.187500 -0.312500 0.500000
v 0.187500 -0.500000 0.187500 v -0.187500 -0.187500 -0.500000
v 0.187500 -0.500000 0.312500 v -0.312500 -0.187500 -0.500000
v 0.312500 -0.500000 0.312500 v -0.312500 -0.312500 -0.500000
v 0.312500 -0.500000 0.187500 v -0.187500 -0.312500 -0.500000
v -0.312500 -0.500000 0.312500 v -0.312500 0.312500 -0.500000
v -0.187500 -0.500000 0.312500 v -0.312500 0.187500 -0.500000
v -0.187500 -0.500000 0.187500 v -0.187500 0.187500 -0.500000
v 0.187500 0.500000 0.312500 v -0.312500 -0.187500 0.500000
v -0.187500 0.500000 0.312500 v -0.312500 0.187500 0.500000
v -0.312500 0.500000 0.312500 v -0.312500 0.312500 0.500000
v -0.312500 0.500000 0.187500 v -0.187500 0.312500 0.500000
v -0.187500 -0.125000 0.187500 v -0.187500 0.187500 -0.125000
v -0.187500 0.000000 0.187500 v -0.187500 0.187500 0.000000
v 0.187500 -0.125000 0.187500 v -0.187500 -0.187500 -0.125000
v 0.187500 0.000000 0.187500 v -0.187500 -0.187500 0.000000
v -0.187500 -0.125000 0.312500 v -0.312500 0.187500 -0.125000
v -0.187500 0.000000 0.312500 v -0.312500 0.187500 0.000000
v 0.187500 -0.125000 0.312500 v -0.312500 -0.187500 -0.125000
v 0.187500 -0.062500 0.312500 v -0.312500 -0.187500 -0.062500
v 0.187500 0.000000 0.312500 v -0.312500 -0.187500 0.000000
v -0.187500 -0.062500 0.312500 v -0.312500 0.187500 -0.062500
vt 0.125000 0.375000 vt 0.125000 0.375000
vt 0.625000 0.375000 vt 0.625000 0.375000
vt 0.625000 0.437500 vt 0.625000 0.437500
@ -155,12 +155,12 @@ vt 0.750000 0.750000
vt 0.250000 0.750000 vt 0.250000 0.750000
vt 0.312500 0.625000 vt 0.312500 0.625000
vt 0.687500 0.625000 vt 0.687500 0.625000
vn 0.000000 -1.000000 0.000000
vn 1.000000 0.000000 0.000000 vn 1.000000 0.000000 0.000000
vn -1.000000 -0.000000 0.000000
vn -0.000000 1.000000 0.000000
vn 0.000000 0.000000 -1.000000 vn 0.000000 0.000000 -1.000000
vn 0.000000 0.000000 1.000000 vn 0.000000 0.000000 1.000000
vn -1.000000 0.000000 0.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 1.000000 0.000000
g Cylinder_Cylinder_wood g Cylinder_Cylinder_wood
s off s off
f 1/1/1 7/2/1 19/3/1 18/4/1 f 1/1/1 7/2/1 19/3/1 18/4/1

File diff suppressed because it is too large Load Diff

View File

@ -1,42 +1,42 @@
# Blender v2.73 (sub 0) OBJ File: 'shutter.blend' # Blender v2.72 (sub 0) OBJ File: 'shutter.blend'
# www.blender.org # www.blender.org
o Plane o Plane
v 0.437500 -0.453125 -0.031250 v 0.437500 -0.453125 -0.031250
v -0.437500 -0.453125 -0.031250 v -0.437500 -0.453125 -0.031250
v -0.437500 -0.453125 0.031250 v -0.437500 -0.453125 0.031250
v 0.437500 -0.453125 0.031250 v 0.437500 -0.453125 0.031250
v 0.437500 -0.460698 0.344815 v 0.437500 -0.461698 0.344815
v -0.437500 -0.460698 0.344815 v -0.437500 -0.461698 0.344815
v 0.437500 -0.476874 0.405185 v 0.437500 -0.477874 0.405185
v -0.437500 -0.476874 0.405185 v -0.437500 -0.477874 0.405185
v 0.437500 -0.460698 -0.405185 v 0.437500 -0.461698 -0.405185
v -0.437500 -0.460698 -0.405185 v -0.437500 -0.461698 -0.405185
v 0.437500 -0.476874 -0.344815 v 0.437500 -0.477874 -0.344815
v -0.437500 -0.476874 -0.344815 v -0.437500 -0.477874 -0.344815
v 0.437500 -0.460698 -0.311435 v 0.437500 -0.461698 -0.311435
v -0.437500 -0.460698 -0.311435 v -0.437500 -0.461698 -0.311435
v 0.437500 -0.476874 -0.251065 v 0.437500 -0.477874 -0.251065
v -0.437500 -0.476874 -0.251065 v -0.437500 -0.477874 -0.251065
v 0.437500 -0.460698 0.251065 v 0.437500 -0.461698 0.251065
v -0.437500 -0.460698 0.251065 v -0.437500 -0.461698 0.251065
v 0.437500 -0.476874 0.311435 v 0.437500 -0.477874 0.311435
v -0.437500 -0.476874 0.311435 v -0.437500 -0.477874 0.311435
v 0.437500 -0.460698 0.157315 v 0.437500 -0.461698 0.157315
v -0.437500 -0.460698 0.157315 v -0.437500 -0.461698 0.157315
v 0.437500 -0.476874 0.217685 v 0.437500 -0.477874 0.217685
v -0.437500 -0.476874 0.217685 v -0.437500 -0.477874 0.217685
v 0.437500 -0.460698 -0.217685 v 0.437500 -0.461698 -0.217685
v -0.437500 -0.460698 -0.217685 v -0.437500 -0.461698 -0.217685
v 0.437500 -0.476874 -0.157315 v 0.437500 -0.477874 -0.157315
v -0.437500 -0.476874 -0.157315 v -0.437500 -0.477874 -0.157315
v 0.437500 -0.460698 -0.123935 v 0.437500 -0.461698 -0.123935
v -0.437500 -0.460698 -0.123935 v -0.437500 -0.461698 -0.123935
v 0.437500 -0.476874 -0.063565 v 0.437500 -0.477874 -0.063565
v -0.437500 -0.476874 -0.063565 v -0.437500 -0.477874 -0.063565
v 0.437500 -0.460698 0.063565 v 0.437500 -0.461698 0.063565
v -0.437500 -0.460698 0.063565 v -0.437500 -0.461698 0.063565
v 0.437500 -0.476874 0.123935 v 0.437500 -0.477874 0.123935
v -0.437500 -0.476874 0.123935 v -0.437500 -0.477874 0.123935
v 0.437500 -0.484375 0.031250 v 0.437500 -0.484375 0.031250
v -0.437500 -0.484375 0.031250 v -0.437500 -0.484375 0.031250
v -0.437500 -0.484375 -0.031250 v -0.437500 -0.484375 -0.031250
@ -167,57 +167,41 @@ vt 0.945313 0.062500
vt 0.992188 0.062500 vt 0.992188 0.062500
vt 0.992187 0.937500 vt 0.992187 0.937500
vt 0.945313 0.937500 vt 0.945313 0.937500
vn -0.000000 -0.965900 -0.258800
vn 0.000000 -1.000000 0.000000
vn 0.000000 0.000000 1.000000
vn -0.000000 -0.000000 -1.000000
vn -0.000000 1.000000 -0.000000
vn -1.000000 0.000000 0.000000
vn 0.124000 0.992300 -0.000000
vn 0.000000 0.992300 0.124000
vn 0.000000 0.992300 -0.124000
vn -0.124000 0.992300 -0.000000
vn 1.000000 -0.000000 -0.000000
vn -0.000000 -0.992300 0.124000
vn 0.124000 -0.992300 0.000000
vn -0.124000 -0.992300 0.000000
vn -0.000000 -0.992300 -0.124000
vn 0.000000 0.965900 0.258800
g Plane_Plane_Material g Plane_Plane_Material
s off s off
f 7/1/1 8/2/1 6/3/1 5/4/1 f 7/1 8/2 6/3 5/4
f 11/5/1 12/6/1 10/7/1 9/8/1 f 11/5 12/6 10/7 9/8
f 15/9/1 16/10/1 14/11/1 13/12/1 f 15/9 16/10 14/11 13/12
f 19/13/1 20/14/1 18/15/1 17/16/1 f 19/13 20/14 18/15 17/16
f 23/17/1 24/18/1 22/19/1 21/20/1 f 23/17 24/18 22/19 21/20
f 27/21/1 28/22/1 26/23/1 25/24/1 f 27/21 28/22 26/23 25/24
f 31/25/1 32/26/1 30/27/1 29/28/1 f 31/25 32/26 30/27 29/28
f 35/29/1 36/30/1 34/31/1 33/32/1 f 35/29 36/30 34/31 33/32
f 37/33/2 38/34/2 39/35/2 40/36/2 f 37/33 38/34 39/35 40/36
f 3/37/3 38/38/3 37/39/3 4/40/3 f 3/37 38/38 37/39 4/40
f 1/41/4 40/42/4 39/43/4 2/44/4 f 1/41 40/42 39/43 2/44
f 3/34/5 4/33/5 1/45/5 2/46/5 f 3/34 4/33 1/45 2/46
f 41/47/4 42/48/4 43/49/4 44/50/4 f 41/47 42/48 43/49 44/50
f 46/51/3 53/52/3 51/53/3 47/54/3 f 46/51 53/52 51/53 47/54
f 41/55/6 44/50/6 47/54/6 51/56/6 f 41/55 44/50 47/54 51/56
f 41/50/7 51/54/7 55/57/7 56/58/7 f 41/50 51/54 55/57 56/58
f 41/50/8 56/58/8 54/59/8 42/49/8 f 41/50 56/58 54/59 42/49
f 51/54/9 53/51/9 52/60/9 55/57/9 f 51/54 53/51 52/60 55/57
f 52/60/10 53/51/10 42/49/10 54/59/10 f 52/60 53/51 42/49 54/59
f 42/61/11 53/62/11 46/51/11 43/49/11 f 42/61 53/62 46/51 43/49
f 44/50/12 43/49/12 49/59/12 50/58/12 f 44/50 43/49 49/59 50/58
f 48/57/13 47/54/13 44/50/13 50/58/13 f 48/57 47/54 44/50 50/58
f 43/49/14 46/51/14 45/60/14 49/59/14 f 43/49 46/51 45/60 49/59
f 45/60/15 46/51/15 47/54/15 48/57/15 f 45/60 46/51 47/54 48/57
f 50/63/3 49/64/3 54/65/3 56/66/3 f 50/63 49/64 54/65 56/66
f 45/67/4 48/68/4 55/69/4 52/70/4 f 45/67 48/68 55/69 52/70
f 48/71/11 50/72/11 56/73/11 55/74/11 f 48/71 50/72 56/73 55/74
f 54/75/6 49/76/6 45/77/6 52/78/6 f 54/75 49/76 45/77 52/78
f 59/1/16 57/4/16 58/3/16 60/2/16 f 59/1 57/4 58/3 60/2
f 63/5/16 61/8/16 62/7/16 64/6/16 f 63/5 61/8 62/7 64/6
f 67/9/16 65/12/16 66/11/16 68/10/16 f 67/9 65/12 66/11 68/10
f 71/13/16 69/16/16 70/15/16 72/14/16 f 71/13 69/16 70/15 72/14
f 75/17/16 73/20/16 74/19/16 76/18/16 f 75/17 73/20 74/19 76/18
f 79/21/16 77/24/16 78/23/16 80/22/16 f 79/21 77/24 78/23 80/22
f 83/25/16 81/28/16 82/27/16 84/26/16 f 83/25 81/28 82/27 84/26
f 87/29/16 85/32/16 86/31/16 88/30/16 f 87/29 85/32 86/31 88/30

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

@ -1,4 +1,5 @@
local S = homedecor.gettext
local S = homedecor_i18n.gettext
homedecor.register("filing_cabinet", { homedecor.register("filing_cabinet", {
description = S("Filing cabinet"), description = S("Filing cabinet"),
@ -22,12 +23,12 @@ local desk_cbox = {
fixed = { -0.5, -0.5, -0.5, 1.5, 0.5, 0.5 } fixed = { -0.5, -0.5, -0.5, 1.5, 0.5, 0.5 }
} }
homedecor.register("desk", { homedecor.register("desk", {
description = "Desk", description = S("Desk"),
mesh = "homedecor_desk.obj", mesh = "homedecor_desk.obj",
tiles = { tiles = {
homedecor.plain_wood, homedecor.plain_wood,
"homedecor_desk_drawers.png", "homedecor_desk_drawers.png",
"homedecor_generic_metal_black.png", { name = "homedecor_generic_metal.png", color = homedecor.color_black }
}, },
inventory_image = "homedecor_desk_inv.png", inventory_image = "homedecor_desk_inv.png",
selection_box = desk_cbox, selection_box = desk_cbox,
@ -48,11 +49,11 @@ local globe_cbox = {
} }
homedecor.register("desk_globe", { homedecor.register("desk_globe", {
description = "Desk globe", description = S("Desk globe"),
mesh = "homedecor_desk_globe.obj", mesh = "homedecor_desk_globe.obj",
tiles = { tiles = {
"homedecor_generic_wood_red.png", "homedecor_generic_wood_red.png",
"homedecor_generic_metal_black.png^[brighten", { name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
"homedecor_earth.png" "homedecor_earth.png"
}, },
inventory_image = "homedecor_desk_globe_inv.png", inventory_image = "homedecor_desk_globe_inv.png",
@ -64,7 +65,7 @@ homedecor.register("desk_globe", {
}) })
homedecor.register("calendar", { homedecor.register("calendar", {
description = "Calendar", description = S("Calendar"),
mesh = "homedecor_calendar.obj", mesh = "homedecor_calendar.obj",
tiles = {"homedecor_calendar.png"}, tiles = {"homedecor_calendar.png"},
inventory_image = "homedecor_calendar_inv.png", inventory_image = "homedecor_calendar_inv.png",
@ -80,11 +81,11 @@ homedecor.register("calendar", {
groups = {choppy=2,attached_node=1}, groups = {choppy=2,attached_node=1},
legacy_wallmounted = true, legacy_wallmounted = true,
sounds = default.node_sound_defaults(), sounds = default.node_sound_defaults(),
infotext = "Date (right-click to update):\n" .. os.date("%Y-%m-%d"), -- ISO 8601 format infotext = S("Date (right-click to update):\n@1", os.date("%Y-%m-%d")), -- ISO 8601 format
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local date = os.date("%Y-%m-%d") local date = os.date("%Y-%m-%d")
meta:set_string("infotext", "Date (right-click to update):\n"..date) meta:set_string("infotext", S("Date (right-click to update):\n@1", date))
return itemstack return itemstack
end end
}) })
@ -103,12 +104,18 @@ local ofchairs_cbox = {
} }
} }
for _, c in pairs({"basic", "upscale"}) do local chairs = {
homedecor.register("office_chair_"..c, { { "basic", S("Basic office chair") },
description = "Office chair ("..c..")", { "upscale", S("Upscale office chair") },
}
for _, c in pairs(chairs) do
local name, desc = unpack(c)
homedecor.register("office_chair_"..name, {
description = desc,
drawtype = "mesh", drawtype = "mesh",
tiles = { "homedecor_office_chair_"..c..".png" }, tiles = { "homedecor_office_chair_"..name..".png" },
mesh = "homedecor_office_chair_"..c..".obj", mesh = "homedecor_office_chair_"..name..".obj",
groups = { snappy = 3 }, groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
selection_box = ofchairs_sbox, selection_box = ofchairs_sbox,

View File

@ -1,5 +1,5 @@
local S = homedecor.gettext local S = homedecor_i18n.gettext
local function N_(x) return x end local function N_(x) return x end

View File

@ -1,19 +1,18 @@
-- Various kinds of window shutters -- Various kinds of window shutters
local S = homedecor.gettext local S = homedecor_i18n.gettext
local shutters = { local shutters = {
{"oak", S("unpainted oak"), "#bf8a51:200" }, "mahogany",
{"mahogany", S("mahogany"), "#822606:200" }, "red",
{"red", S("red"), "#d00000:150" }, "yellow",
{"yellow", S("yellow"), "#ffff00:150" }, "forest_green",
{"forest_green", S("forest green"), "#006000:150" }, "light_blue",
{"light_blue", S("light blue"), "#1963c7:150" }, "violet",
{"violet", S("violet"), "#6000ff:150" }, "black",
{"black", S("black"), "#000000:200" }, "dark_grey",
{"dark_grey", S("dark grey"), "#202020:200" }, "grey",
{"grey", S("grey"), "#c0c0c0:150" }, "white",
{"white", S("white"), "#ffffff:150" },
} }
local shutter_cbox = { local shutter_cbox = {
@ -23,27 +22,85 @@ local shutter_cbox = {
wall_side = { -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 } wall_side = { -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 }
} }
for _, s in ipairs(shutters) do local inv = "homedecor_window_shutter_inv.png^[colorize:#a87034:150"
local name, desc, hue = unpack(s)
local tile = "homedecor_window_shutter.png^[colorize:"..hue homedecor.register("shutter", {
local inv = "homedecor_window_shutter_inv.png^[colorize:"..hue
homedecor.register("shutter_"..name, {
mesh = "homedecor_window_shutter.obj", mesh = "homedecor_window_shutter.obj",
tiles = { tile }, tiles = {
description = S("Wooden Shutter (@1)", desc), { name = "homedecor_window_shutter.png", color = 0xffa87034 }
},
description = S("Wooden Shutter"),
inventory_image = inv, inventory_image = inv,
wield_image = inv, wield_image = inv,
paramtype2 = "wallmounted", paramtype2 = "colorwallmounted",
groups = { snappy = 3 }, palette = "unifieddyes_palette_colorwallmounted.png",
ud_replacement_node = "homedecor:shutter_colored",
groups = { snappy = 3, ud_param2_colorable = 1 },
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
selection_box = shutter_cbox, selection_box = shutter_cbox,
node_box = shutter_cbox, node_box = shutter_cbox,
-- collision_box doesn't accept type="wallmounted", but node_box after_place_node = function(pos, placer, itemstack, pointed_thing)
-- does. Said nodeboxes create a custom collision box but are unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
-- invisible themselves because drawtype="mesh". unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end,
after_dig_node = unifieddyes.after_dig_node
})
homedecor.register("shutter_colored", {
mesh = "homedecor_window_shutter.obj",
tiles = { "homedecor_window_shutter.png" },
description = S("Wooden Shutter"),
inventory_image = "homedecor_window_shutter_inv.png",
wield_image = "homedecor_window_shutter_inv.png",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
groups = { snappy = 3 , not_in_creative_inventory = 1, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(),
selection_box = shutter_cbox,
node_box = shutter_cbox,
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"
}) })
end
minetest.register_alias("homedecor:shutter_purple", "homedecor:shutter_violet") minetest.register_alias("homedecor:shutter_purple", "homedecor:shutter_violet")
minetest.register_alias("homedecor:shutter_oak", "homedecor:shutter")
-- convert to param2 coloring
homedecor.old_shutter_nodes = {}
for _, color in ipairs(shutters) do
table.insert(homedecor.old_shutter_nodes, "homedecor:shutter_"..color)
end
minetest.register_lbm({
name = "homedecor:convert_shutters",
label = "Convert shutter static nodes to use param2 color",
run_at_every_load = false,
nodenames = homedecor.old_shutter_nodes,
action = function(pos, node)
local name = node.name
local color = string.sub(name, string.find(name, "_") + 1)
if color == "mahogany" then
color = "dark_red"
elseif color == "forest_green" then
color = "dark_green"
elseif color == "light_blue" then
color = "medium_cyan"
elseif color == "red" then
color = "medium_red"
end
local paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted")
local param2 = paletteidx + node.param2
minetest.set_node(pos, { name = "homedecor:shutter_colored", param2 = param2 })
local meta = minetest.get_meta(pos)
meta:set_string("dye", "unifieddyes:"..color)
end
})

View File

@ -1,4 +1,5 @@
local S = homedecor.gettext
local S = homedecor_i18n.gettext
-- Various kinds of tables -- Various kinds of tables

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 B

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 381 B

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 465 B

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 425 B

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 684 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 605 B

After

Width:  |  Height:  |  Size: 293 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 B

Some files were not shown because too many files have changed in this diff Show More