1
0
mirror of https://github.com/mt-mods/homedecor_modpack.git synced 2025-07-15 20:20:28 +02:00

Compare commits

...

193 Commits

Author SHA1 Message Date
bcf9238e47 use currency mod's 25-cent Minegeld coin for soda machine 2018-11-09 20:23:42 -05:00
e291a45d99 license fixups: use LGPL 3.0 for code,
CC-by-SA 4.0 for media and everything else
2018-11-08 18:58:34 -05:00
12bdbd6684 use basic_materials padlock instead of steel ingot
for lockable items.
2018-10-31 12:16:50 -04:00
13a35d12a0 use basic_materials mod where possible 2018-10-30 20:46:10 -04:00
c5393f1462 use empty bucket in shower tray recipe 2018-10-25 13:15:24 -04:00
93351aecda use three marble + bucket to make bathroom sink 2018-10-25 13:14:14 -04:00
bf79c7d430 if both gloopblocks and moreblocks present, don't register "gravel spread"
alias it to gloopblocks:slab_gravel_1
2018-10-25 13:03:25 -04:00
f7ff5ae3f4 allow crafting coffee table from two endtables 2018-10-25 12:44:18 -04:00
c64dabfa28 use "default:wood" explicitly in homedecor:table recipe
("group:wood" conflicts with lrfurn coffee table,
probably an issue with moreblocks)
2018-10-25 12:40:13 -04:00
d4e85cbab2 disable sleeping in beds 2018-10-25 12:34:33 -04:00
3791311422 get rid of glass office doors
alias them to default glass doors
2018-10-25 12:30:21 -04:00
ec0e332918 get rid of phone ringing sound effect 2018-10-25 12:18:15 -04:00
6dec410d29 better recipes for the spools
(now the end cost is 0.5 ingot and 2.333 plastic per spool of wire)
2018-10-24 19:27:14 -04:00
0c58327df7 add empty spool (craft from 7 plastic sheet)
make steel and copper wire use it.
reworked existing spool images
2018-10-24 19:04:25 -04:00
fba875f474 allow turning 8 small lattice lamps into one large. 2018-10-18 07:20:36 -04:00
f983710899 reduce light output of small lattice cube lantern
(especially if it comes from a darkage:lamp)
2018-10-18 07:17:32 -04:00
6a3c009276 if darkage is also installed,
don't register large homedecor lattice lamp or the recipes to
create it or to split it into 8 small lamps. instead, add an
alias to darkage:lamp and a recipe to split that.
2018-10-18 06:54:26 -04:00
69e87419ea add alternate recipe for green welcome mat
(workaround for a moreblocks bug)
2018-10-16 15:06:07 -04:00
25fef974e3 add palette to wood banister 2018-09-13 22:32:46 -04:00
4980844320 use airbrush_replacement_node instead of ud_replacement_node in shutter 2018-09-13 10:31:29 -04:00
fc781daca0 get rid of old 89->256 color LBMs 2018-09-12 23:03:41 -04:00
5b631142aa take colored banisted "pseudo nodes" out of creative inv 2018-09-12 22:43:05 -04:00
eb6089a03e make wooden banister colorable via Unified Dyes 2018-09-12 20:34:11 -04:00
41455647a2 lrfurn i18n fix 2018-09-11 06:19:31 -04:00
55fea4f6ca make doors and gates respond to vertical mesecon two nodes below
using pressure plate rules
2018-08-28 23:26:08 -04:00
a8729575ab switch to colored itemstacks
with full crafting recipes
(requires Unified Dyes commit 2a816534 or later)

known issues:

standing lamp bypasses vertical stack check
bed expansion changes the color of the first-placed bed
to match the second when creating a king bed.
2018-08-22 05:09:55 -04:00
9e69a6db73 more set_int fixes 2018-06-11 14:06:37 -04:00
54ce73b616 fix the fix ;) 2018-06-07 10:57:19 -04:00
8a5bc0e038 fix #2 2018-06-07 10:22:52 -04:00
d6ff137657 Add moreblocks:slab_wood for table_lamp (#418) 2018-05-20 00:49:02 -04:00
a4ca53cc05 fix players in bed count for multiplayer (#404) 2018-05-14 13:28:36 -04:00
017326dbed replace print with verbose logging (#409)
* remove debug log
2018-05-14 00:00:29 -04:00
31bf6b8c40 add translation for log message 2018-05-13 23:59:22 -04:00
b526ec1714 add disabled coin crafting logging 2018-05-13 23:59:22 -04:00
7e98534179 add prefix to settings key 2018-05-13 23:59:22 -04:00
8132cfc6f8 add setting disable_coin_crafting to make coins not available for crafting 2018-05-13 23:59:22 -04:00
Foz
39984c356b Resolve itemframe entity duplication Fixes #405.
The ABM that replaces deleted entities in itemframes and pedestals can sometimes add multiple copies of each entity due to a race condition in which the ABM runs either before the server loads the entities or after they have been removed due to the map block being unloaded.  Due to limitations in determining when all entities have been loaded, this race condition cannot be fully avoided.  This commit converts the ABM, which ran every fifteen seconds, into and LBM that runs on every load and adds a check to the entities when they are loaded such that only the first loaded entity will be kept and any additional copies delete themselves during the loading process.
2018-05-13 09:34:18 -04:00
eb2b3d7980 add optional support for skinsdb in wardrobe
- All skins are registered in skinsdb, including skins format
- But the skins are not in inventory skins list, still available trough wardrobe only
- If selected, the skins metadata and preview is shown in inventory
- Use skinsdb method to set the skin
- Note: skinsdb manages the 3d_armor if both mods found
2018-05-13 09:31:27 -04:00
08bbd0f592 Computer Remove local 2018-05-11 09:20:44 -04:00
3597c2c1aa Proper handle stairs groups
fix #410
2018-05-11 09:09:25 -04:00
5db791deb4 refactor code 2018-05-11 09:02:45 -04:00
8ccbe6abc4 add skin_updates table (somehow got lost) 2018-05-11 09:02:45 -04:00
cafba3bc53 load skin when player has joined the game 2018-05-11 09:02:45 -04:00
ac10702849 prepare code to be reused later 2018-05-11 09:02:45 -04:00
fe2acaaa1e replace player_set_textures with new API (fallback to old API) 2018-05-11 09:02:45 -04:00
bfda7c49fd fix ceiling lamp recipes (#403)
There is no homedecor:glowlight_small, homedecor:glowlight_small_cube only
2018-02-13 13:31:01 -05:00
4d9c4c2410 Update init.lua (#400)
tweak sizes of chain selection boxes and adjust light levels of chandeliers.
2017-12-21 01:45:30 -05:00
1471a0cba9 depend on mt_game 'creative' mod
as some of its functions are used to check if players have creative mode
2017-12-15 20:10:42 -05:00
eabd237252 Luacheck: make this a bit more useful by adding common symbols. 2017-12-06 21:16:40 -08:00
9d4ac9bd9a Fix books: enforce book ownership, strict access checking.
Fixes #399
2017-12-06 21:15:58 -08:00
5efa9af1b7 Building_blocks Alias (#398)
Alias for old node Tar cut by moreblocks.
2017-11-20 12:26:57 -05:00
7d40724d39 Update Malay translation (#396)
* Update Malay translation
2017-11-13 22:22:45 -05:00
5e6307ea3a Change sounds for the "Itemframe" and "Pedestal (#395) 2017-09-29 23:39:15 -04:00
8882ab8e19 Building blocks add glass for stairplus (#394)
* Building Blocks Add all glass for stairsplus

-Smoothglass
-WoodGlass

(plus some style fixes)
2017-09-29 11:58:55 -04:00
3021248538 Building Blocks add sound (#393)
- Grate
- Firefplace
- Roofing
2017-09-29 01:05:53 -04:00
4eaf265e65 allow sleeping in beds!
fixed by using some code from mt_game, with changes
2017-09-29 01:03:05 -04:00
228e25e123 get rid of inventorycube() calls
they're obsolete and annoying in combo with current inventory hover animations
2017-09-28 06:22:53 -04:00
ddcb08fe62 Building Blocks node_stairs layout
- Glasslike
- RailLike
- Nodebox
- Node
And fix one tabulation with fakegrass.
2017-09-27 18:47:58 +02:00
972d30dd38 Building Blocks layout all file 2017-09-27 17:05:20 +02:00
cc9276841e Building Blocks Delete return to the line 2017-09-27 16:26:44 +02:00
f2f49a3aac Building Blocks Create file recipes 2017-09-27 16:02:54 +02:00
b92c9e065b Building Blocks Create file others 2017-09-27 15:58:04 +02:00
ea77ac32ea Building Blocks Create file node_stairs 2017-09-27 15:44:33 +02:00
14697ef71b Building Blocks create file alias 2017-09-27 15:29:20 +02:00
9921efeeef Building Blocks Revert capital lettre
45-48 and 352-353 : Marble and Tar not use capital lettre for stairs.
Alias and node name revert.
2017-09-27 14:14:40 +02:00
87e3c9f9ce Building Blocks add alias for moreblocks 2017-09-26 17:19:51 +02:00
095e34ad7f Building Blocks Add Alias for bbstairs 2017-09-26 16:48:20 +02:00
6c9da755f3 Building Blocks moreblocks and stairs
Simplify integration moreblocks
Replace bb stairs by Stairs
2017-09-26 15:43:47 +02:00
c786e3ae05 Building Blocks simplify name for stairs 2017-09-26 15:17:16 +02:00
48be7ddef1 brain-o in banister placement. fixes #388
there was no reason to explicitly check whether to place a horizontal
next to another horizontal after all the other checks were done.
2017-09-25 23:53:18 -04:00
2c5be0735a Russian locale (#386)
* Russian locale

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

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

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

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

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

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

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

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

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

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

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

View File

@ -4,7 +4,9 @@ allow_defined_top = true
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
@ -15,6 +17,9 @@ read_globals = {
"beds",
"technic",
"mesecon",
"unifieddyes",
"creative",
"homedecor_i18n",
}
globals = {

450
LICENSE
View File

@ -1,17 +1,15 @@
For the Lua code: LGPL 3.0 or higher
For all models, all textures, and all sounds: CC-by-SA 3.0 or higher
For everything else: WTFPL
License for code: LGPL 3.0
License for media and all other assets: CC-by-SA 4.0
Exceptions to the above:
These licenses apply to all modules and components in this modpack,
unless otherwise stated.
Fancy mesh fire model and texture by NathanS (CC-0).
===============================================================================
###############################################################################
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -174,26 +172,432 @@ apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.
===============================================================================
###############################################################################
This work is licensed under the Creative Commons Attribution-ShareAlike
4.0 International License. To view a copy of this license, visit
http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to
Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
Attribution-ShareAlike 4.0 International
===============================================================================
=======================================================================
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Creative Commons Corporation ("Creative Commons") is not a law firm and
does not provide legal services or legal advice. Distribution of
Creative Commons public licenses does not create a lawyer-client or
other relationship. Creative Commons makes its licenses and related
information available on an "as-is" basis. Creative Commons gives no
warranties regarding its licenses, any material licensed under their
terms and conditions, or any related information. Creative Commons
disclaims all liability for damages resulting from their use to the
fullest extent possible.
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Using Creative Commons Public Licenses
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
Creative Commons public licenses provide a standard set of terms and
conditions that creators and other rights holders may use to share
original works of authorship and other material subject to copyright
and certain other rights specified in the public license below. The
following considerations are for informational purposes only, are not
exhaustive, and do not form part of our licenses.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
Considerations for licensors: Our public licenses are
intended for use by those authorized to give the public
permission to use material in ways otherwise restricted by
copyright and certain other rights. Our licenses are
irrevocable. Licensors should read and understand the terms
and conditions of the license they choose before applying it.
Licensors should also secure all rights necessary before
applying our licenses so that the public can reuse the
material as expected. Licensors should clearly mark any
material not subject to the license. This includes other CC-
licensed material, or material used under an exception or
limitation to copyright. More considerations for licensors:
wiki.creativecommons.org/Considerations_for_licensors
0. You just DO WHAT THE FUCK YOU WANT TO.
Considerations for the public: By using one of our public
licenses, a licensor grants the public permission to use the
licensed material under specified terms and conditions. If
the licensor's permission is not necessary for any reason--for
example, because of any applicable exception or limitation to
copyright--then that use is not regulated by the license. Our
licenses grant only permissions under copyright and certain
other rights that a licensor has authority to grant. Use of
the licensed material may still be restricted for other
reasons, including because others have copyright or other
rights in the material. A licensor may make special requests,
such as asking that all changes be marked or described.
Although not required by our licenses, you are encouraged to
respect those requests where reasonable. More considerations
for the public:
wiki.creativecommons.org/Considerations_for_licensees
=======================================================================
Creative Commons Attribution-ShareAlike 4.0 International Public
License
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution-ShareAlike 4.0 International Public License ("Public
License"). To the extent this Public License may be interpreted as a
contract, You are granted the Licensed Rights in consideration of Your
acceptance of these terms and conditions, and the Licensor grants You
such rights in consideration of benefits the Licensor receives from
making the Licensed Material available under these terms and
conditions.
Section 1 -- Definitions.
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
c. BY-SA Compatible License means a license listed at
creativecommons.org/compatiblelicenses, approved by Creative
Commons as essentially the equivalent of this Public License.
d. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
e. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
f. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
g. License Elements means the license attributes listed in the name
of a Creative Commons Public License. The License Elements of this
Public License are Attribution and ShareAlike.
h. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
i. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
j. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
k. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
l. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
m. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
Section 2 -- Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License,
the Licensor hereby grants You a worldwide, royalty-free,
non-sublicensable, non-exclusive, irrevocable license to
exercise the Licensed Rights in the Licensed Material to:
a. reproduce and Share the Licensed Material, in whole or
in part; and
b. produce, reproduce, and Share Adapted Material.
2. Exceptions and Limitations. For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public
License does not apply, and You do not need to comply with
its terms and conditions.
3. Term. The term of this Public License is specified in Section
6(a).
4. Media and formats; technical modifications allowed. The
Licensor authorizes You to exercise the Licensed Rights in
all media and formats whether now known or hereafter created,
and to make technical modifications necessary to do so. The
Licensor waives and/or agrees not to assert any right or
authority to forbid You from making technical modifications
necessary to exercise the Licensed Rights, including
technical modifications necessary to circumvent Effective
Technological Measures. For purposes of this Public License,
simply making modifications authorized by this Section 2(a)
(4) never produces Adapted Material.
5. Downstream recipients.
a. Offer from the Licensor -- Licensed Material. Every
recipient of the Licensed Material automatically
receives an offer from the Licensor to exercise the
Licensed Rights under the terms and conditions of this
Public License.
b. Additional offer from the Licensor -- Adapted Material.
Every recipient of Adapted Material from You
automatically receives an offer from the Licensor to
exercise the Licensed Rights in the Adapted Material
under the conditions of the Adapter's License You apply.
c. No downstream restrictions. You may not offer or impose
any additional or different terms or conditions on, or
apply any Effective Technological Measures to, the
Licensed Material if doing so restricts exercise of the
Licensed Rights by any recipient of the Licensed
Material.
6. No endorsement. Nothing in this Public License constitutes or
may be construed as permission to assert or imply that You
are, or that Your use of the Licensed Material is, connected
with, or sponsored, endorsed, or granted official status by,
the Licensor or others designated to receive attribution as
provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not
licensed under this Public License, nor are publicity,
privacy, and/or other similar personality rights; however, to
the extent possible, the Licensor waives and/or agrees not to
assert any such rights held by the Licensor to the limited
extent necessary to allow You to exercise the Licensed
Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this
Public License.
3. To the extent possible, the Licensor waives any right to
collect royalties from You for the exercise of the Licensed
Rights, whether directly or through a collecting society
under any voluntary or waivable statutory or compulsory
licensing scheme. In all other cases the Licensor expressly
reserves any right to collect such royalties.
Section 3 -- License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified
form), You must:
a. retain the following if it is supplied by the Licensor
with the Licensed Material:
i. identification of the creator(s) of the Licensed
Material and any others designated to receive
attribution, in any reasonable manner requested by
the Licensor (including by pseudonym if
designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of
warranties;
v. a URI or hyperlink to the Licensed Material to the
extent reasonably practicable;
b. indicate if You modified the Licensed Material and
retain an indication of any previous modifications; and
c. indicate the Licensed Material is licensed under this
Public License, and include the text of, or the URI or
hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any
reasonable manner based on the medium, means, and context in
which You Share the Licensed Material. For example, it may be
reasonable to satisfy the conditions by providing a URI or
hyperlink to a resource that includes the required
information.
3. If requested by the Licensor, You must remove any of the
information required by Section 3(a)(1)(A) to the extent
reasonably practicable.
b. ShareAlike.
In addition to the conditions in Section 3(a), if You Share
Adapted Material You produce, the following conditions also apply.
1. The Adapter's License You apply must be a Creative Commons
license with the same License Elements, this version or
later, or a BY-SA Compatible License.
2. You must include the text of, or the URI or hyperlink to, the
Adapter's License You apply. You may satisfy this condition
in any reasonable manner based on the medium, means, and
context in which You Share Adapted Material.
3. You may not offer or impose any additional or different terms
or conditions on, or apply any Effective Technological
Measures to, Adapted Material that restrict exercise of the
rights granted under the Adapter's License You apply.
Section 4 -- Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database;
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material,
including for purposes of Section 3(b); and
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
Section 6 -- Term and Termination.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided
it is cured within 30 days of Your discovery of the
violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any
right the Licensor may have to seek remedies for Your violations
of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
Section 7 -- Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
Section 8 -- Interpretation.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
=======================================================================
Creative Commons is not a party to its public
licenses. Notwithstanding, Creative Commons may elect to apply one of
its public licenses to material it publishes and in those instances
will be considered the “Licensor.” The text of the Creative Commons
public licenses is dedicated to the public domain under the CC0 Public
Domain Dedication. Except for the limited purpose of indicating that
material is shared under a Creative Commons public license or as
otherwise permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the
use of the trademark "Creative Commons" or any other trademark or logo
of Creative Commons without its prior written consent including,
without limitation, in connection with any unauthorized modifications
to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the
public licenses.
Creative Commons may be contacted at creativecommons.org.

65
README
View File

@ -1,61 +1,8 @@
This is what I consider to be a fairly feature-filled home decor
modpack. As such, it comes in multiple parts:
This is what I consider to be a fairly feature-filled home decor modpack.
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
most homes (like flower pots, home electronics, brass and wrought-iron
tables, and a bunch of other things).
Dependencies: unifieddyes and a Minetest engine build newer than 2017-01-23.
* A "3d extras" mod, which supplies things that re-define something in
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
Recommends: signs_lib, windmill, moreblocks, unified_inventory.

61
building_blocks/alias.lua Normal file
View File

@ -0,0 +1,61 @@
local S = homedecor_i18n.gettext
if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then
minetest.register_alias("building_blocks:slab_tar", "stairs:slab_Tar")
minetest.register_alias("building_blocks:stair_tar", "stairs:stair_Tar")
minetest.register_alias("building_blocks:slab_marble", "stairs:slab_Marble")
minetest.register_alias("building_blocks:stair_marble", "stairs:stair_Marble")
end
if minetest.get_modpath("moreblocks") then
stairsplus:register_alias_all("building_blocks", "tar", "building_blocks", "Tar")
stairsplus:register_alias_all("building_blocks", "marble", "building_blocks", "Marble")
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_alias_all("moreblocks", "tar", "building_blocks", "Tar")
if minetest.get_modpath("gloopblocks") then
minetest.register_alias("building_blocks:gravel_spread", "gloopblocks:slab_gravel_1")
end
end
minetest.register_alias("adobe", "building_blocks:Adobe")
minetest.register_alias("fakegrass", "building_blocks:fakegrass")
minetest.register_alias("hardwood", "building_blocks:hardwood")
minetest.register_alias("tar_knife", "building_blocks:knife")
minetest.register_alias("marble", "building_blocks:Marble")
minetest.register_alias("building_blocks_roofing", "building_blocks:Roofing")
minetest.register_alias("sticks", "building_blocks:sticks")
minetest.register_alias("building_blocks:faggot", "building_blocks:sticks")
minetest.register_alias("tar", "building_blocks:Tar")
if not minetest.get_modpath("technic") then
minetest.register_node( ":technic:granite", {
description = S("Granite"),
tiles = { "technic_granite.png" },
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = "technic:granite 9",
recipe = {
{ "group:tar_block", "group:marble", "group:tar_block" },
{ "group:marble", "group:tar_block", "group:marble" },
{ "group:tar_block", "group:marble", "group:tar_block" }
},
})
if minetest.get_modpath("moreblocks") then
stairsplus:register_all("technic", "granite", "technic:granite", {
description=S("Granite"),
groups={cracky=1, not_in_creative_inventory=1},
tiles={"technic_granite.png"},
})
end
end

View File

@ -1,2 +1,5 @@
default
moreblocks?
homedecor_i18n
moreblocks?
gloopblocks?
stairs?

View File

@ -1,616 +1,7 @@
minetest.register_node("building_blocks:Adobe", {
tiles = {"building_blocks_Adobe.png"},
description = "Adobe",
is_ground_content = true,
groups = {crumbly=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("building_blocks:Roofing", {
tiles = {"building_blocks_Roofing.png"},
is_ground_content = true,
description = "Roof block",
groups = {snappy=3},
})
minetest.register_craft({
output = 'building_blocks:terrycloth_towel 2',
recipe = {
{"farming:string", "farming:string", "farming:string"},
}
})
minetest.register_craft({
output = 'building_blocks:Tarmac_spread 4',
recipe = {
{"group:tar_block", "group:tar_block"},
}
})
minetest.register_craft({
output = 'building_blocks:gravel_spread 4',
recipe = {
{"default:gravel", "default:gravel", "default:gravel"},
}
})
minetest.register_craft({
output = 'building_blocks:brobble_spread 4',
recipe = {
{"default:brick", "default:cobble", "default:brick"},
}
})
minetest.register_craft({
output = 'building_blocks:Fireplace 1',
recipe = {
{"default:steel_ingot", "building_blocks:sticks", "default:steel_ingot"},
}
})
minetest.register_craft({
output = 'building_blocks:Adobe 3',
recipe = {
{"default:sand"},
{"default:clay"},
{"group:stick"},
}
})
local S = homedecor_i18n.gettext
local modpath = minetest.get_modpath("building_blocks")
minetest.register_craft({
output = 'building_blocks:Roofing 10',
recipe = {
{"building_blocks:Adobe", "building_blocks:Adobe"},
{"building_blocks:Adobe", "building_blocks:Adobe"},
}
})
minetest.register_craft({
output = 'building_blocks:BWtile 10',
recipe = {
{"group:marble", "group:tar_block"},
{"group:tar_block", "group:marble"},
}
})
minetest.register_craft({
output = 'building_blocks:grate 1',
recipe = {
{"default:steel_ingot", "default:steel_ingot"},
{"default:glass", "default:glass"},
}
})
minetest.register_craft({
output = 'building_blocks:woodglass 1',
recipe = {
{"default:wood"},
{"default:glass"},
}
})
minetest.register_craft({
output = 'building_blocks:hardwood 2',
recipe = {
{"default:wood", "default:junglewood"},
{"default:junglewood", "default:wood"},
}
})
minetest.register_craft({
output = 'building_blocks:hardwood 2',
recipe = {
{"default:junglewood", "default:wood"},
{"default:wood", "default:junglewood"},
}
})
if minetest.get_modpath("moreblocks") then
minetest.register_craft({
output = 'building_blocks:sticks 2',
recipe = {
{'group:stick', '' , 'group:stick'},
{'group:stick', 'group:stick', 'group:stick'},
{'group:stick', 'group:stick', 'group:stick'},
}
})
else
minetest.register_craft({
output = 'building_blocks:sticks',
recipe = {
{'group:stick', 'group:stick'},
{'group:stick', 'group:stick'},
}
})
end
minetest.register_craft({
output = 'default:stick 4',
recipe = {
{'building_blocks:sticks'},
}
})
minetest.register_craft({
output = 'building_blocks:fakegrass 2',
recipe = {
{'default:leaves'},
{"default:dirt"},
}
})
minetest.register_craft({
output = 'building_blocks:tar_base 2',
recipe = {
{"default:coal_lump", "default:gravel"},
{"default:gravel", "default:coal_lump"}
}
})
minetest.register_craft({
output = 'building_blocks:tar_base 2',
recipe = {
{"default:gravel", "default:coal_lump"},
{"default:coal_lump", "default:gravel"}
}
})
minetest.register_craft({
type = "cooking",
output = "building_blocks:smoothglass",
recipe = "default:glass"
})
minetest.register_node("building_blocks:smoothglass", {
drawtype = "glasslike",
description = "Streak Free Glass",
tiles = {"building_blocks_sglass.png"},
inventory_image = minetest.inventorycube("building_blocks_sglass.png"),
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_node("building_blocks:grate", {
drawtype = "glasslike",
description = "Grate",
tiles = {"building_blocks_grate.png"},
inventory_image = minetest.inventorycube("building_blocks_grate.png"),
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
groups = {cracky=1},
})
minetest.register_node("building_blocks:Fireplace", {
description = "Fireplace",
tiles = {
"building_blocks_cast_iron.png",
"building_blocks_cast_iron.png",
"building_blocks_cast_iron.png",
"building_blocks_cast_iron_fireplace.png"
},
paramtype = "light",
paramtype2 = "facedir",
light_source = default.LIGHT_MAX,
sunlight_propagates = true,
is_ground_content = true,
groups = {cracky=2},
})
minetest.register_node("building_blocks:woodglass", {
drawtype = "glasslike",
description = "Wood Framed Glass",
tiles = {"building_blocks_wglass.png"},
inventory_image = minetest.inventorycube("building_blocks_wglass.png"),
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_node("building_blocks:terrycloth_towel", {
drawtype = "raillike",
description = "Terrycloth towel",
tiles = {"building_blocks_towel.png"},
inventory_image = "building_blocks_towel_inv.png",
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {crumbly=3},
})
minetest.register_node("building_blocks:Tarmac_spread", {
drawtype = "raillike",
description = "Tarmac Spread",
tiles = {"building_blocks_tar.png"},
inventory_image = "building_blocks_tar_spread_inv.png",
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_node("building_blocks:BWtile", {
drawtype = "raillike",
description = "Chess board tiling",
tiles = {"building_blocks_BWtile.png"},
inventory_image = "building_blocks_bwtile_inv.png",
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {crumbly=3},
})
minetest.register_node("building_blocks:brobble_spread", {
drawtype = "raillike",
description = "Brobble Spread",
tiles = {"building_blocks_brobble.png"},
inventory_image = "building_blocks_brobble_spread_inv.png",
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {crumbly=3},
})
minetest.register_node("building_blocks:gravel_spread", {
drawtype = "raillike",
description = "Gravel Spread",
tiles = {"default_gravel.png"},
inventory_image = "building_blocks_gravel_spread_inv.png",
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {crumbly=2},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
}),
})
minetest.register_node("building_blocks:hardwood", {
tiles = {"building_blocks_hardwood.png"},
is_ground_content = true,
description = "Hardwood",
groups = {choppy=1,flammable=1},
sounds = default.node_sound_wood_defaults(),
})
if minetest.get_modpath("moreblocks") then
stairsplus:register_all(
"building_blocks",
"marble",
"building_blocks:Marble",
{
description = "Marble",
tiles = {"building_blocks_marble.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
}
)
stairsplus:register_all(
"building_blocks",
"hardwood",
"building_blocks:hardwood",
{
description = "Hardwood",
tiles = {"building_blocks_hardwood.png"},
groups = {choppy=1,flammable=1},
sounds = default.node_sound_wood_defaults(),
}
)
stairsplus:register_all(
"building_blocks",
"fakegrass",
"building_blocks:fakegrass",
{
description = "Grass",
tiles = {"default_grass.png"},
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.4},
}),
}
)
stairsplus:register_all(
"building_blocks",
"tar",
"building_blocks:Tar",
{
description = "Tar",
tiles = {"building_blocks_tar.png"},
groups = {crumbly=1},
sounds = default.node_sound_stone_defaults(),
}
)
stairsplus:register_all(
"building_blocks",
"grate",
"building_blocks:grate",
{
description = "Grate",
tiles = {"building_blocks_grate.png"},
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
}
)
stairsplus:register_all(
"building_blocks",
"Adobe",
"building_blocks:Adobe",
{
description = "Adobe",
tiles = {"building_blocks_Adobe.png"},
groups = {crumbly=3},
sounds = default.node_sound_stone_defaults(),
}
)
stairsplus:register_all(
"building_blocks",
"Roofing",
"building_blocks:Roofing",
{
description = "Roofing",
tiles = {"building_blocks_Roofing.png"},
groups = {snappy=3},
sounds = default.node_sound_stone_defaults(),
}
)
else
bb_stairs = {}
-- Node will be called stairs:stair_<subname>
function bb_stairs.register_stair(subname, recipeitem, groups, images, description)
minetest.register_node("building_blocks:stair_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = true,
groups = groups,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{-0.5, 0, 0, 0.5, 0.5, 0.5},
},
},
})
minetest.register_craft({
output = 'building_blocks:stair_' .. subname .. ' 4',
recipe = {
{recipeitem, "", ""},
{recipeitem, recipeitem, ""},
{recipeitem, recipeitem, recipeitem},
},
})
-- Flipped recipe for the silly minecrafters
minetest.register_craft({
output = 'building_blocks:stair_' .. subname .. ' 4',
recipe = {
{"", "", recipeitem},
{"", recipeitem, recipeitem},
{recipeitem, recipeitem, recipeitem},
},
})
end
-- Node will be called stairs:slab_<subname>
function bb_stairs.register_slab(subname, recipeitem, groups, images, description)
minetest.register_node("building_blocks:slab_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
is_ground_content = true,
groups = groups,
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
},
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
},
})
minetest.register_craft({
output = 'building_blocks:slab_' .. subname .. ' 3',
recipe = {
{recipeitem, recipeitem, recipeitem},
},
})
end
-- Nodes will be called stairs:{stair,slab}_<subname>
function bb_stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab)
bb_stairs.register_stair(subname, recipeitem, groups, images, desc_stair)
bb_stairs.register_slab(subname, recipeitem, groups, images, desc_slab)
end
bb_stairs.register_stair_and_slab("marble","building_blocks:Marble",
{cracky=3},
{"building_blocks_marble.png"},
"Marble stair",
"Marble slab"
)
bb_stairs.register_stair_and_slab("hardwood","building_blocks:hardwood",
{choppy=1,flammable=1},
{"building_blocks_hardwood.png"},
"Hardwood stair",
"Hardwood slab"
)
bb_stairs.register_stair_and_slab("fakegrass","building_blocks:fakegrass",
{crumbly=3},
{"default_grass.png"},
"Grass stair",
"Grass slab"
)
bb_stairs.register_stair_and_slab("tar","building_blocks:Tar",
{crumbly=1},
{"building_blocks_tar.png"},
"Tar stair",
"Tar slab"
)
bb_stairs.register_stair_and_slab("grate","building_blocks:grate",
{cracky=1},
{"building_blocks_grate.png"},
"Grate Stair",
"Grate Slab"
)
bb_stairs.register_stair_and_slab("Adobe", "building_blocks:Adobe",
{crumbly=3},
{"building_blocks_Adobe.png"},
"Adobe stair",
"Adobe slab"
)
bb_stairs.register_stair_and_slab("Roofing", "building_blocks:Roofing",
{snappy=3},
{"building_blocks_Roofing.png"},
"Roofing stair",
"Roofing slab"
)
end
minetest.register_craft({
type = "fuel",
recipe = "building_blocks:hardwood",
burntime = 28,
})
minetest.register_node("building_blocks:fakegrass", {
tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
description = "Fake Grass",
is_ground_content = true,
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.4},
}),
})
minetest.register_craftitem("building_blocks:sticks", {
description = "Small bundle of sticks",
image = "building_blocks_sticks.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem("building_blocks:tar_base", {
description = "Tar base",
image = "building_blocks_tar_base.png",
})
--Tar
minetest.register_craft({
output = 'building_blocks:knife 1',
recipe = {
{"group:tar_block"},
{"group:stick"},
}
})
minetest.register_alias("tar", "building_blocks:Tar")
minetest.register_alias("fakegrass", "building_blocks:fakegrass")
minetest.register_alias("tar_knife", "building_blocks:knife")
minetest.register_alias("adobe", "building_blocks:Adobe")
minetest.register_alias("building_blocks_roofing", "building_blocks:Roofing")
minetest.register_alias("hardwood", "building_blocks:hardwood")
minetest.register_alias("sticks", "building_blocks:sticks")
minetest.register_alias("building_blocks:faggot", "building_blocks:sticks")
minetest.register_alias("marble", "building_blocks:Marble")
minetest.register_node("building_blocks:Tar", {
description = "Tar",
tiles = {"building_blocks_tar.png"},
is_ground_content = true,
groups = {crumbly=1, tar_block = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("building_blocks:Marble", {
description = "Marble",
tiles = {"building_blocks_marble.png"},
is_ground_content = true,
groups = {cracky=3, marble = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
type = "fuel",
recipe = "building_blocks:sticks",
burntime = 5,
})
minetest.register_craft({
type = "fuel",
recipe = "building_blocks:Tar",
burntime = 40,
})
minetest.register_craft({
type = "cooking",
output = "building_blocks:Tar",
recipe = "building_blocks:tar_base",
})
minetest.register_tool("building_blocks:knife", {
description = "Tar Knife",
inventory_image = "building_blocks_knife.png",
tool_capabilities = {
max_drop_level=0,
groupcaps={
choppy={times={[2]=7.50, [3]=2.80}, uses=100, maxlevel=1},
fleshy={times={[2]=5.50, [3]=2.80}, uses=100, maxlevel=1}
}
},
})
minetest.register_craft({
output = "building_blocks:Marble 9",
recipe = {
{"default:clay", "group:tar_block", "default:clay"},
{"group:tar_block","default:clay", "group:tar_block"},
{"default:clay", "group:tar_block","default:clay"},
}
})
if not minetest.get_modpath("technic") then
minetest.register_node( ":technic:granite", {
description = "Granite",
tiles = { "technic_granite.png" },
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = "technic:granite 9",
recipe = {
{ "group:tar_block", "group:marble", "group:tar_block" },
{ "group:marble", "group:tar_block", "group:marble" },
{ "group:tar_block", "group:marble", "group:tar_block" }
},
})
if minetest.get_modpath("moreblocks") then
stairsplus:register_all("technic", "granite", "technic:granite", {
description="Granite",
groups={cracky=1, not_in_creative_inventory=1},
tiles={"technic_granite.png"},
})
end
end
dofile(modpath.."/alias.lua")
dofile(modpath.."/node_stairs.lua")
dofile(modpath.."/others.lua")
dofile(modpath.."/recipes.lua")

View File

@ -0,0 +1,230 @@
local S = homedecor_i18n.gettext
local stairs_groups_names = {"cracky","choppy","flammable","crumbly","snappy"}
local function building_blocks_stairs(nodename, def)
minetest.register_node(nodename, def)
if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then
local mod, name = nodename:match("(.*):(.*)")
minetest.register_alias(mod .. ":slab_" .. name, "stairs:slab_" .. name)
minetest.register_alias(mod .. ":stair_" .. name, "stairs:stair_" .. name)
local stairs_groups = {}
for _, groupname in ipairs(stairs_groups_names) do
stairs_groups[groupname] = def.groups[groupname]
end
if minetest.get_modpath("moreblocks") then
stairsplus:register_all(
mod,
name,
nodename,
{
description = def.description,
tiles = def.tiles,
groups = stairs_groups,
sounds = def.sounds,
}
)
else
stairs.register_stair_and_slab(name,nodename,
stairs_groups,
def.tiles,
("%s Stair"):format(def.description),
("%s Slab"):format(def.description),
def.sounds
)
end
end
end
building_blocks_stairs("building_blocks:grate", {
drawtype = "glasslike",
description = S("Grate"),
tiles = {"building_blocks_grate.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_metal_defaults(),
})
building_blocks_stairs("building_blocks:smoothglass", {
drawtype = "glasslike",
description = S("Streak Free Glass"),
tiles = {"building_blocks_sglass.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
})
building_blocks_stairs("building_blocks:woodglass", {
drawtype = "glasslike",
description = S("Wood Framed Glass"),
tiles = {"building_blocks_wglass.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
})
building_blocks_stairs("building_blocks:Adobe", {
tiles = {"building_blocks_Adobe.png"},
description = S("Adobe"),
is_ground_content = true,
groups = {crumbly=3},
sounds = default.node_sound_stone_defaults(),
})
building_blocks_stairs("building_blocks:fakegrass", {
tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
description = S("Fake Grass"),
is_ground_content = true,
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.4},
}),
})
building_blocks_stairs("building_blocks:hardwood", {
tiles = {"building_blocks_hardwood.png"},
is_ground_content = true,
description = S("Hardwood"),
groups = {choppy=1,flammable=1},
sounds = default.node_sound_wood_defaults(),
})
building_blocks_stairs("building_blocks:Roofing", {
tiles = {"building_blocks_Roofing.png"},
is_ground_content = true,
description = S("Roof block"),
groups = {snappy=3},
sounds = default.node_sound_stone_defaults(),
})
building_blocks_stairs("building_blocks:Tar", {
description = S("Tar"),
tiles = {"building_blocks_tar.png"},
is_ground_content = true,
groups = {crumbly=1, tar_block = 1},
sounds = default.node_sound_stone_defaults(),
})
building_blocks_stairs("building_blocks:Marble", {
description = S("Marble"),
tiles = {"building_blocks_marble.png"},
is_ground_content = true,
groups = {cracky=3, marble = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("building_blocks:brobble_spread", {
drawtype = "raillike",
-- Translators: "Brobble" is a portmanteau of "Brick" and "Cobble".
-- Translate however you see fit.
description = S("Brobble Spread"),
tiles = {"building_blocks_brobble.png"},
inventory_image = "building_blocks_brobble_spread_inv.png",
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {crumbly=3},
})
if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopblocks") then
minetest.register_node("building_blocks:gravel_spread", {
drawtype = "raillike",
description = S("Gravel Spread"),
tiles = {"default_gravel.png"},
inventory_image = "building_blocks_gravel_spread_inv.png",
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {crumbly=2},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
}),
})
end
minetest.register_node("building_blocks:Tarmac_spread", {
drawtype = "raillike",
description = S("Tarmac Spread"),
tiles = {"building_blocks_tar.png"},
inventory_image = "building_blocks_tar_spread_inv.png",
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_node("building_blocks:terrycloth_towel", {
drawtype = "raillike",
description = S("Terrycloth towel"),
tiles = {"building_blocks_towel.png"},
inventory_image = "building_blocks_towel_inv.png",
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {crumbly=3},
})
minetest.register_node("building_blocks:BWtile", {
drawtype = "nodebox",
description = S("Chess board tiling"),
tiles = {
"building_blocks_BWtile.png",
"building_blocks_BWtile.png^[transformR90",
"building_blocks_BWtile.png^[transformR90",
"building_blocks_BWtile.png^[transformR90",
"building_blocks_BWtile.png",
"building_blocks_BWtile.png"
},
inventory_image = "building_blocks_bwtile_inv.png",
paramtype = "light",
walkable = false,
node_box = {
type = "fixed",
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {crumbly=3},
})
minetest.register_node("building_blocks:Fireplace", {
description = S("Fireplace"),
tiles = {
"building_blocks_cast_iron.png",
"building_blocks_cast_iron.png",
"building_blocks_cast_iron.png",
"building_blocks_cast_iron_fireplace.png"
},
paramtype = "light",
paramtype2 = "facedir",
light_source = default.LIGHT_MAX,
sunlight_propagates = true,
is_ground_content = true,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults(),
})

View File

@ -0,0 +1,23 @@
local S = homedecor_i18n.gettext
minetest.register_craftitem("building_blocks:sticks", {
description = S("Small bundle of sticks"),
image = "building_blocks_sticks.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem("building_blocks:tar_base", {
description = S("Tar base"),
image = "building_blocks_tar_base.png",
})
minetest.register_tool("building_blocks:knife", {
description = S("Tar Knife"),
inventory_image = "building_blocks_knife.png",
tool_capabilities = {
max_drop_level=0,
groupcaps={
choppy={times={[2]=7.50, [3]=2.80}, uses=100, maxlevel=1},
fleshy={times={[2]=5.50, [3]=2.80}, uses=100, maxlevel=1}
}
},
})

174
building_blocks/recipes.lua Normal file
View File

@ -0,0 +1,174 @@
local S = homedecor_i18n.gettext
if minetest.get_modpath("moreblocks") then
minetest.register_craft({
output = 'building_blocks:sticks 2',
recipe = {
{'group:stick', '' , 'group:stick'},
{'group:stick', 'group:stick', 'group:stick'},
{'group:stick', 'group:stick', 'group:stick'},
}
})
else
minetest.register_craft({
output = 'building_blocks:sticks',
recipe = {
{'group:stick', 'group:stick'},
{'group:stick', 'group:stick'},
}
})
end
minetest.register_craft({
output = 'building_blocks:Adobe 3',
recipe = {
{"default:sand"},
{"default:clay"},
{"group:stick"},
}
})
minetest.register_craft({
output = 'building_blocks:brobble_spread 4',
recipe = {
{"default:brick", "default:cobble", "default:brick"},
}
})
minetest.register_craft({
output = 'building_blocks:BWtile 10',
recipe = {
{"group:marble", "group:tar_block"},
{"group:tar_block", "group:marble"},
}
})
minetest.register_craft({
output = 'building_blocks:fakegrass 2',
recipe = {
{'default:leaves'},
{"default:dirt"},
}
})
minetest.register_craft({
output = 'building_blocks:Fireplace 1',
recipe = {
{"default:steel_ingot", "building_blocks:sticks", "default:steel_ingot"},
}
})
minetest.register_craft({
output = 'building_blocks:grate 1',
recipe = {
{"default:steel_ingot", "default:steel_ingot"},
{"default:glass", "default:glass"},
}
})
if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopblocks") then
minetest.register_craft({
output = 'building_blocks:gravel_spread 4',
recipe = {
{"default:gravel", "default:gravel", "default:gravel"},
}
})
end
minetest.register_craft({
output = 'building_blocks:hardwood 2',
recipe = {
{"default:wood", "default:junglewood"},
{"default:junglewood", "default:wood"},
}
})
minetest.register_craft({
output = 'building_blocks:hardwood 2',
recipe = {
{"default:junglewood", "default:wood"},
{"default:wood", "default:junglewood"},
}
})
minetest.register_craft({
output = 'building_blocks:knife 1',
recipe = {
{"group:tar_block"},
{"group:stick"},
}
})
minetest.register_craft({
output = "building_blocks:Marble 9",
recipe = {
{"default:clay", "group:tar_block", "default:clay"},
{"group:tar_block","default:clay", "group:tar_block"},
{"default:clay", "group:tar_block","default:clay"},
}
})
minetest.register_craft({
output = 'building_blocks:Roofing 10',
recipe = {
{"building_blocks:Adobe", "building_blocks:Adobe"},
{"building_blocks:Adobe", "building_blocks:Adobe"},
}
})
minetest.register_craft({
output = 'default:stick 4',
recipe = {
{'building_blocks:sticks'},
}
})
minetest.register_craft({
output = 'building_blocks:tar_base 4',
recipe = {
{"default:coal_lump", "default:gravel"},
{"default:gravel", "default:coal_lump"}
}
})
minetest.register_craft({
output = 'building_blocks:tar_base 4',
recipe = {
{"default:gravel", "default:coal_lump"},
{"default:coal_lump", "default:gravel"}
}
})
minetest.register_craft({
output = 'building_blocks:Tarmac_spread 4',
recipe = {
{"group:tar_block", "group:tar_block"},
}
})
minetest.register_craft({
output = 'building_blocks:terrycloth_towel 2',
recipe = {
{"farming:string", "farming:string", "farming:string"},
}
})
minetest.register_craft({
output = 'building_blocks:woodglass 1',
recipe = {
{"default:wood"},
{"default:glass"},
}
})
minetest.register_craft({
type = "cooking",
output = "building_blocks:smoothglass",
recipe = "default:glass"
})
minetest.register_craft({
type = "cooking",
output = "building_blocks:Tar",
recipe = "building_blocks:tar_base",
})
minetest.register_craft({
type = "fuel",
recipe = "building_blocks:hardwood",
burntime = 28,
})
minetest.register_craft({
type = "fuel",
recipe = "building_blocks:sticks",
burntime = 5,
})
minetest.register_craft({
type = "fuel",
recipe = "building_blocks:Tar",
burntime = 40,
})

View File

@ -1 +0,0 @@
default

View File

@ -1,178 +0,0 @@
local chains_sbox = {
type = "fixed",
fixed = { -0.1, -0.625, -0.1, 0.1, 0.5, 0.1 }
}
local topchains_sbox = {
type = "fixed",
fixed = {
{ -0.25, 0.35, -0.25, 0.25, 0.5, 0.25 },
{ -0.1, -0.625, -0.1, 0.1, 0.4, 0.1 }
}
}
minetest.register_node("chains:chain", {
description = "Hanging chain (wrought iron)",
drawtype = "mesh",
mesh = "chains.obj",
tiles = {"chains_wrought_iron.png"},
walkable = false,
climbable = true,
sunlight_propagates = true,
paramtype = "light",
inventory_image = "chain_wrought_iron_inv.png",
groups = {cracky=3},
selection_box = chains_sbox,
})
minetest.register_node("chains:chain_brass", {
description = "Hanging chain (brass)",
drawtype = "mesh",
mesh = "chains.obj",
tiles = {"chains_brass.png"},
walkable = false,
climbable = true,
sunlight_propagates = true,
paramtype = "light",
inventory_image = "chain_brass_inv.png",
groups = {cracky=3},
selection_box = chains_sbox,
})
minetest.register_node("chains:chain_top", {
description = "Hanging chain (ceiling mount, wrought iron)",
drawtype = "mesh",
mesh = "top_chains.obj",
tiles = {"chains_wrought_iron.png"},
walkable = false,
climbable = true,
sunlight_propagates = true,
paramtype = "light",
inventory_image = "top_chain_wrought_iron_inv.png",
groups = {cracky=3},
selection_box = topchains_sbox,
})
minetest.register_node("chains:chain_top_brass", {
description = "Hanging chain (ceiling mount, brass)",
drawtype = "mesh",
mesh = "top_chains.obj",
tiles = {"chains_brass.png"},
walkable = false,
climbable = true,
sunlight_propagates = true,
paramtype = "light",
inventory_image = "top_chain_brass_inv.png",
groups = {cracky=3},
selection_box = topchains_sbox,
})
minetest.register_node("chains:chandelier", {
description = "Chandelier (wrought iron)",
paramtype = "light",
light_source = default.LIGHT_MAX-2,
walkable = false,
climbable = true,
sunlight_propagates = true,
paramtype = "light",
tiles = {
"chains_wrought_iron.png",
"chains_candle.png",
{
name="chains_candle_flame.png",
animation={
type="vertical_frames",
aspect_w=16,
aspect_h=16,
length=3.0
}
}
},
drawtype = "mesh",
mesh = "chains_chandelier.obj",
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("chains:chandelier_brass", {
description = "Chandelier (brass)",
paramtype = "light",
light_source = default.LIGHT_MAX-2,
walkable = false,
climbable = true,
sunlight_propagates = true,
paramtype = "light",
tiles = {
"chains_brass.png",
"chains_candle.png",
{
name="chains_candle_flame.png",
animation={
type="vertical_frames",
aspect_w=16,
aspect_h=16,
length=3.0
}
}
},
drawtype = "mesh",
mesh = "chains_chandelier.obj",
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
-- crafts
minetest.register_craft({
output = 'chains:chain 2',
recipe = {
{'glooptest:chainlink'},
{'glooptest:chainlink'},
{'glooptest:chainlink'},
}
})
minetest.register_craft({
output = 'chains:chain_top',
recipe = {
{'default:steel_ingot'},
{'glooptest:chainlink'},
},
})
minetest.register_craft({
output = 'chains:chandelier',
recipe = {
{'', 'glooptest:chainlink', ''},
{'default:torch', 'glooptest:chainlink', 'default:torch'},
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
}
})
-- brass versions
minetest.register_craft({
output = 'chains:chain_brass 2',
recipe = {
{'homedecor:chainlink_brass'},
{'homedecor:chainlink_brass'},
{'homedecor:chainlink_brass'},
}
})
minetest.register_craft({
output = 'chains:chain_top_brass',
recipe = {
{'technic:brass_ingot'},
{'homedecor:chainlink_brass'},
},
})
minetest.register_craft({
output = 'chains:chandelier_brass',
recipe = {
{'', 'homedecor:chainlink_brass', ''},
{'default:torch', 'homedecor:chainlink_brass', 'default:torch'},
{'technic:brass_ingot', 'technic:brass_ingot', 'technic:brass_ingot'},
}
})

View File

@ -1,881 +0,0 @@
# Blender v2.73 (sub 0) OBJ File: 'chains.blend'
# www.blender.org
o Torus.016_Torus
v 0.000000 -0.429978 0.000002
v 0.000000 -0.401109 0.055211
v -0.014044 -0.391975 0.048870
v -0.014044 -0.423304 0.000002
v -0.009826 -0.379748 0.040970
v -0.009826 -0.406012 0.000002
v 0.009826 -0.379748 0.040970
v 0.009826 -0.406012 0.000002
v 0.014044 -0.391975 0.048870
v 0.014044 -0.423304 0.000002
v 0.000000 -0.316336 0.080195
v -0.014044 -0.316336 0.069112
v -0.009826 -0.316336 0.057941
v 0.009826 -0.316336 0.057941
v 0.014044 -0.316336 0.069112
v 0.000000 -0.231564 0.055211
v -0.014044 -0.240700 0.048870
v -0.009826 -0.252925 0.040970
v 0.009826 -0.252925 0.040970
v 0.014044 -0.240700 0.048870
v 0.000000 -0.202695 0.000002
v -0.014044 -0.209368 0.000002
v -0.009826 -0.226661 0.000002
v 0.009826 -0.226661 0.000002
v 0.014044 -0.209368 0.000002
v 0.000000 -0.231564 -0.055206
v -0.014044 -0.240700 -0.048868
v -0.009826 -0.252925 -0.040967
v 0.009826 -0.252925 -0.040967
v 0.014044 -0.240700 -0.048865
v 0.000000 -0.316336 -0.080190
v -0.014044 -0.316336 -0.069108
v -0.009826 -0.316336 -0.057936
v 0.009826 -0.316336 -0.057936
v 0.014044 -0.316336 -0.069108
v 0.000000 -0.400361 -0.055206
v -0.014044 -0.391975 -0.048868
v -0.009826 -0.379748 -0.040967
v 0.009826 -0.379748 -0.040967
v 0.014044 -0.391975 -0.048868
v 0.000000 -0.262249 0.000002
v -0.061672 -0.233381 0.000002
v -0.054590 -0.224245 -0.012569
v 0.000000 -0.255577 -0.012569
v -0.045765 -0.212018 -0.008794
v 0.000000 -0.238285 -0.008794
v -0.045765 -0.212018 0.008798
v 0.000000 -0.238285 0.008798
v -0.054590 -0.224245 0.012574
v 0.000000 -0.255577 0.012574
v -0.089582 -0.148609 0.000002
v -0.077200 -0.148609 -0.012569
v -0.064722 -0.148609 -0.008794
v -0.064722 -0.148609 0.008799
v -0.077200 -0.148609 0.012574
v -0.061672 -0.063837 0.000002
v -0.054590 -0.072971 -0.012569
v -0.045765 -0.085198 -0.008794
v -0.045765 -0.085198 0.008799
v -0.054590 -0.072971 0.012574
v 0.000000 -0.034967 0.000002
v 0.000000 -0.041641 -0.012569
v 0.000000 -0.058933 -0.008794
v 0.000000 -0.058933 0.008799
v 0.000000 -0.041641 0.012574
v 0.061672 -0.063837 0.000002
v 0.054590 -0.072971 -0.012569
v 0.045765 -0.085198 -0.008794
v 0.045765 -0.085198 0.008799
v 0.054590 -0.072971 0.012574
v 0.089582 -0.148609 0.000002
v 0.077200 -0.148609 -0.012569
v 0.064722 -0.148609 -0.008794
v 0.064722 -0.148609 0.008799
v 0.077200 -0.148609 0.012574
v 0.061672 -0.232631 0.000002
v 0.054590 -0.224245 -0.012569
v 0.045765 -0.212018 -0.008794
v 0.045765 -0.212018 0.008798
v 0.054590 -0.224245 0.012574
v 0.000000 0.073316 0.000002
v 0.061672 0.102183 0.000002
v 0.054590 0.111319 0.012574
v 0.000000 0.079988 0.012574
v 0.045765 0.123546 0.008799
v 0.000000 0.097280 0.008799
v 0.045765 0.123546 -0.008794
v 0.000000 0.097280 -0.008794
v 0.054590 0.111319 -0.012569
v 0.000000 0.079988 -0.012569
v 0.089582 0.186956 0.000002
v 0.077200 0.186956 0.012574
v 0.064722 0.186956 0.008799
v 0.064722 0.186956 -0.008794
v 0.077200 0.186956 -0.012569
v 0.061672 0.271728 0.000002
v 0.054590 0.262594 0.012574
v 0.045765 0.250367 0.008799
v 0.045765 0.250367 -0.008794
v 0.054590 0.262594 -0.012569
v 0.000000 0.300597 0.000002
v 0.000000 0.293923 0.012574
v 0.000000 0.276631 0.008799
v 0.000000 0.276631 -0.008794
v 0.000000 0.293923 -0.012569
v -0.061672 0.271728 0.000002
v -0.054590 0.262594 0.012574
v -0.045765 0.250367 0.008799
v -0.045765 0.250367 -0.008794
v -0.054590 0.262594 -0.012569
v -0.089582 0.186956 0.000002
v -0.077200 0.186956 0.012574
v -0.064722 0.186956 0.008799
v -0.064722 0.186956 -0.008794
v -0.077200 0.186956 -0.012569
v -0.061672 0.102931 0.000002
v -0.054590 0.111319 0.012574
v -0.045765 0.123546 0.008799
v -0.045765 0.123546 -0.008794
v -0.054590 0.111319 -0.012569
v 0.000000 -0.095037 0.000002
v 0.000000 -0.066168 -0.055206
v 0.014044 -0.057034 -0.048868
v 0.014044 -0.088363 0.000002
v 0.009826 -0.044807 -0.040967
v 0.009826 -0.071071 0.000002
v -0.009826 -0.044807 -0.040967
v -0.009826 -0.071071 0.000002
v -0.014044 -0.057034 -0.048868
v -0.014044 -0.088363 0.000002
v 0.000000 0.018605 -0.080190
v 0.014044 0.018605 -0.069108
v 0.009826 0.018605 -0.057936
v -0.009826 0.018605 -0.057936
v -0.014044 0.018605 -0.069108
v 0.000000 0.103377 -0.055206
v 0.014044 0.094243 -0.048868
v 0.009826 0.082016 -0.040967
v -0.009826 0.082016 -0.040967
v -0.014044 0.094243 -0.048868
v 0.000000 0.132246 0.000002
v 0.014044 0.125572 0.000002
v 0.009826 0.108280 0.000002
v -0.009826 0.108280 0.000002
v -0.014044 0.125572 0.000002
v 0.000000 0.103377 0.055211
v 0.014044 0.094243 0.048870
v 0.009826 0.082016 0.040970
v -0.009826 0.082016 0.040970
v -0.014044 0.094243 0.048870
v 0.000000 0.018605 0.080195
v 0.014044 0.018605 0.069112
v 0.009826 0.018605 0.057941
v -0.009826 0.018605 0.057941
v -0.014044 0.018605 0.069112
v 0.000000 -0.065420 0.055211
v 0.014044 -0.057032 0.048870
v 0.009826 -0.044807 0.040970
v -0.009826 -0.044807 0.040970
v -0.014044 -0.057032 0.048870
v 0.000000 -0.598329 0.000002
v 0.061672 -0.569460 0.000002
v 0.054590 -0.560326 0.012574
v 0.000000 -0.591655 0.012574
v 0.045765 -0.548099 0.008798
v 0.000000 -0.574363 0.008798
v 0.045765 -0.548099 -0.008794
v 0.000000 -0.574363 -0.008794
v 0.054590 -0.560326 -0.012569
v 0.000000 -0.591655 -0.012569
v 0.089582 -0.484687 0.000002
v 0.077200 -0.484687 0.012574
v 0.064722 -0.484687 0.008798
v 0.064722 -0.484687 -0.008794
v 0.077200 -0.484687 -0.012569
v 0.061672 -0.399915 0.000002
v 0.054590 -0.409051 0.012574
v 0.045765 -0.421278 0.008798
v 0.045765 -0.421278 -0.008794
v 0.054590 -0.409051 -0.012569
v 0.000000 -0.371048 0.000002
v 0.000000 -0.377719 0.012574
v 0.000000 -0.395012 0.008798
v 0.000000 -0.395012 -0.008794
v 0.000000 -0.377719 -0.012569
v -0.061672 -0.399915 0.000002
v -0.054590 -0.409051 0.012574
v -0.045765 -0.421278 0.008798
v -0.045765 -0.421278 -0.008794
v -0.054590 -0.409051 -0.012569
v -0.089582 -0.484687 0.000002
v -0.077200 -0.484687 0.012574
v -0.064722 -0.484687 0.008798
v -0.064722 -0.484687 -0.008794
v -0.077200 -0.484687 -0.012569
v -0.061672 -0.568712 0.000002
v -0.054590 -0.560326 0.012574
v -0.045765 -0.548099 0.008798
v -0.045765 -0.548099 -0.008794
v -0.054590 -0.560326 -0.012569
v 0.000000 0.241043 0.000002
v 0.000000 0.269910 0.055211
v -0.014044 0.279047 0.048870
v -0.014044 0.247717 0.000002
v -0.009826 0.291274 0.040970
v -0.009826 0.265007 0.000002
v 0.009826 0.291274 0.040970
v 0.009826 0.265007 0.000002
v 0.014044 0.279047 0.048870
v 0.014044 0.247717 0.000002
v 0.000000 0.354683 0.080195
v -0.014044 0.354683 0.069112
v -0.009826 0.354683 0.057941
v 0.009826 0.354683 0.057941
v 0.014044 0.354683 0.069112
v 0.000000 0.439455 0.055211
v -0.014044 0.430321 0.048870
v -0.009826 0.418094 0.040970
v 0.009826 0.418094 0.040970
v 0.014044 0.430321 0.048870
v 0.000000 0.468325 0.000002
v -0.014044 0.461651 0.000002
v -0.009826 0.444361 0.000002
v 0.009826 0.444361 0.000002
v 0.014044 0.461651 0.000002
v 0.000000 0.439455 -0.055206
v -0.014044 0.430321 -0.048868
v -0.009826 0.418094 -0.040967
v 0.009826 0.418094 -0.040967
v 0.014044 0.430321 -0.048868
v 0.000000 0.354683 -0.080190
v -0.014044 0.354683 -0.069108
v -0.009826 0.354683 -0.057936
v 0.009826 0.354683 -0.057936
v 0.014044 0.354683 -0.069108
v 0.000000 0.270661 -0.055206
v -0.014044 0.279047 -0.048868
v -0.009826 0.291274 -0.040967
v 0.009826 0.291274 -0.040967
v 0.014044 0.279047 -0.048868
vt 0.187500 0.125000
vt 0.250000 0.125000
vt 0.250000 0.187500
vt 0.187500 0.187500
vt 0.250000 0.250000
vt 0.187500 0.250000
vt 0.250000 0.312500
vt 0.187500 0.312500
vt 0.250000 0.375000
vt 0.187500 0.375000
vt 0.187500 0.062500
vt 0.250000 0.062500
vt 0.312500 0.125000
vt 0.312500 0.187500
vt 0.312500 0.250000
vt 0.312500 0.312500
vt 0.312500 0.375000
vt 0.312500 0.062500
vt 0.375000 0.125000
vt 0.375000 0.187500
vt 0.375000 0.250000
vt 0.375000 0.312500
vt 0.375000 0.375000
vt 0.375000 0.062500
vt 0.437500 0.125000
vt 0.437500 0.187500
vt 0.437500 0.250000
vt 0.437500 0.312500
vt 0.437500 0.375000
vt 0.437500 0.062500
vt 0.500000 0.125000
vt 0.500000 0.187500
vt 0.500000 0.250000
vt 0.500000 0.312500
vt 0.500000 0.375000
vt 0.500000 0.062500
vt -0.000000 0.125000
vt 0.062500 0.125000
vt 0.062500 0.187500
vt -0.000000 0.187500
vt 0.062500 0.250000
vt -0.000000 0.250000
vt 0.062500 0.312500
vt -0.000000 0.312500
vt 0.062500 0.375000
vt -0.000000 0.375000
vt -0.000000 0.062500
vt 0.062500 0.062500
vt 0.125000 0.125000
vt 0.125000 0.187500
vt 0.125000 0.250000
vt 0.125000 0.312500
vt 0.125000 0.375000
vt 0.125000 0.062500
vt 0.750000 0.625000
vt 0.812500 0.625000
vt 0.812500 0.687500
vt 0.750000 0.687500
vt 0.750000 0.375000
vt 0.812500 0.375000
vt 0.812500 0.437500
vt 0.750000 0.437500
vt 0.812500 0.500000
vt 0.750000 0.500000
vt 0.812500 0.562500
vt 0.750000 0.562500
vt 0.875000 0.625000
vt 0.875000 0.687500
vt 0.875000 0.375000
vt 0.875000 0.437500
vt 0.875000 0.500000
vt 0.875000 0.562500
vt 0.937500 0.625000
vt 0.937500 0.687500
vt 0.937500 0.375000
vt 0.937500 0.437500
vt 0.937500 0.500000
vt 0.937500 0.562500
vt 1.000000 0.625000
vt 1.000000 0.687500
vt 1.000000 0.375000
vt 1.000000 0.437500
vt 1.000000 0.500000
vt 1.000000 0.562500
vt 0.500000 0.625000
vt 0.562500 0.625000
vt 0.562500 0.687500
vt 0.500000 0.687500
vt 0.562500 0.375000
vt 0.562500 0.437500
vt 0.500000 0.437500
vt 0.562500 0.500000
vt 0.500000 0.500000
vt 0.562500 0.562500
vt 0.500000 0.562500
vt 0.625000 0.625000
vt 0.625000 0.687500
vt 0.625000 0.375000
vt 0.625000 0.437500
vt 0.625000 0.500000
vt 0.625000 0.562500
vt 0.687500 0.625000
vt 0.687500 0.687500
vt 0.687500 0.375000
vt 0.687500 0.437500
vt 0.687500 0.500000
vt 0.687500 0.562500
vt 0.250000 0.625000
vt 0.312500 0.625000
vt 0.312500 0.687500
vt 0.250000 0.687500
vt 0.312500 0.437500
vt 0.250000 0.437500
vt 0.312500 0.500000
vt 0.250000 0.500000
vt 0.312500 0.562500
vt 0.250000 0.562500
vt 0.375000 0.625000
vt 0.375000 0.687500
vt 0.375000 0.437500
vt 0.375000 0.500000
vt 0.375000 0.562500
vt 0.437500 0.625000
vt 0.437500 0.687500
vt 0.437500 0.437500
vt 0.437500 0.500000
vt 0.437500 0.562500
vt -0.000000 0.625000
vt 0.062500 0.625000
vt 0.062500 0.687500
vt -0.000000 0.687500
vt 0.062500 0.437500
vt -0.000000 0.437500
vt 0.062500 0.500000
vt -0.000000 0.500000
vt 0.062500 0.562500
vt -0.000000 0.562500
vt 0.125000 0.625000
vt 0.125000 0.687500
vt 0.125000 0.437500
vt 0.125000 0.500000
vt 0.125000 0.562500
vt 0.187500 0.625000
vt 0.187500 0.687500
vt 0.187500 0.437500
vt 0.187500 0.500000
vt 0.187500 0.562500
vt 0.687500 0.750000
vt 0.750000 0.750000
vt 0.750000 0.812500
vt 0.687500 0.812500
vt 0.750000 0.875000
vt 0.687500 0.875000
vt 0.750000 0.937500
vt 0.687500 0.937500
vt 0.750000 1.000000
vt 0.687500 1.000000
vt 0.812500 0.750000
vt 0.812500 0.812500
vt 0.812500 0.875000
vt 0.812500 0.937500
vt 0.812500 1.000000
vt 0.875000 0.750000
vt 0.875000 0.812500
vt 0.875000 0.875000
vt 0.875000 0.937500
vt 0.875000 1.000000
vt 0.937500 0.750000
vt 0.937500 0.812500
vt 0.937500 0.875000
vt 0.937500 0.937500
vt 0.937500 1.000000
vt 1.000000 0.750000
vt 1.000000 0.812500
vt 1.000000 0.875000
vt 1.000000 0.937500
vt 1.000000 1.000000
vt 0.500000 0.750000
vt 0.562500 0.750000
vt 0.562500 0.812500
vt 0.500000 0.812500
vt 0.562500 0.875000
vt 0.500000 0.875000
vt 0.562500 0.937500
vt 0.500000 0.937500
vt 0.562500 1.000000
vt 0.500000 1.000000
vt 0.625000 0.750000
vt 0.625000 0.812500
vt 0.625000 0.875000
vt 0.625000 0.937500
vt 0.625000 1.000000
vt 0.750000 0.312500
vt 0.812500 0.312500
vt 0.750000 0.062500
vt 0.812500 0.062500
vt 0.812500 0.125000
vt 0.750000 0.125000
vt 0.812500 0.187500
vt 0.750000 0.187500
vt 0.812500 0.250000
vt 0.750000 0.250000
vt 0.875000 0.312500
vt 0.875000 0.062500
vt 0.875000 0.125000
vt 0.875000 0.187500
vt 0.875000 0.250000
vt 0.937500 0.312500
vt 0.937500 0.062500
vt 0.937500 0.125000
vt 0.937500 0.187500
vt 0.937500 0.250000
vt 1.000000 0.312500
vt 1.000000 0.062500
vt 1.000000 0.125000
vt 1.000000 0.187500
vt 1.000000 0.250000
vt 0.562500 0.312500
vt 0.562500 0.062500
vt 0.562500 0.125000
vt 0.562500 0.187500
vt 0.562500 0.250000
vt 0.625000 0.312500
vt 0.625000 0.062500
vt 0.625000 0.125000
vt 0.625000 0.187500
vt 0.625000 0.250000
vt 0.687500 0.312500
vt 0.687500 0.062500
vt 0.687500 0.125000
vt 0.687500 0.187500
vt 0.687500 0.250000
vt 0.250000 0.937500
vt 0.312500 0.937500
vt 0.312500 1.000000
vt 0.250000 1.000000
vt 0.312500 0.750000
vt 0.250000 0.750000
vt 0.312500 0.812500
vt 0.250000 0.812500
vt 0.312500 0.875000
vt 0.250000 0.875000
vt 0.375000 0.937500
vt 0.375000 1.000000
vt 0.375000 0.750000
vt 0.375000 0.812500
vt 0.375000 0.875000
vt 0.437500 0.937500
vt 0.437500 1.000000
vt 0.437500 0.750000
vt 0.437500 0.812500
vt 0.437500 0.875000
vt 0.000000 0.937500
vt 0.062500 0.937500
vt 0.062500 1.000000
vt 0.000000 1.000000
vt 0.062500 0.750000
vt 0.000000 0.750000
vt 0.062500 0.812500
vt 0.000000 0.812500
vt 0.062500 0.875000
vt 0.000000 0.875000
vt 0.125000 0.937500
vt 0.125000 1.000000
vt 0.125000 0.750000
vt 0.125000 0.812500
vt 0.125000 0.875000
vt 0.187500 0.937500
vt 0.187500 1.000000
vt 0.187500 0.750000
vt 0.187500 0.812500
vt 0.187500 0.875000
vn 0.000000 -1.000000 -0.004800
vn 0.000000 -0.657400 0.753500
vn -0.898300 -0.248500 0.362300
vn -0.863600 -0.504100 -0.003400
vn -0.661500 0.421500 -0.620200
vn -0.746000 0.665900 0.000000
vn 0.661500 0.421500 -0.620200
vn 0.746000 0.665900 0.000000
vn 0.898300 -0.248500 0.362300
vn 0.863600 -0.504100 -0.003400
vn 0.000000 0.000000 1.000000
vn -0.925200 0.000000 0.379500
vn -0.617100 0.000000 -0.786900
vn 0.617100 0.000000 -0.786900
vn 0.925200 0.000000 0.379500
vn 0.000000 0.657400 0.753500
vn -0.898300 0.248400 0.362300
vn -0.661500 -0.421500 -0.620200
vn 0.661500 -0.421500 -0.620200
vn 0.898300 0.248400 0.362300
vn 0.000000 1.000000 0.000000
vn -0.866100 0.499800 0.000000
vn -0.746000 -0.665900 0.000000
vn 0.746000 -0.665900 0.000000
vn 0.866100 0.499800 0.000000
vn 0.000000 0.657400 -0.753500
vn -0.898300 0.248400 -0.362400
vn -0.661600 -0.421500 0.620200
vn 0.661500 -0.421500 0.620200
vn 0.898300 0.248400 -0.362300
vn 0.000000 -0.000900 -1.000000
vn -0.924600 -0.000600 -0.380700
vn -0.617100 0.000000 0.786900
vn 0.617100 0.000000 0.786900
vn 0.924700 -0.000600 -0.380700
vn 0.000000 -0.650300 -0.759600
vn -0.895600 -0.254600 -0.364800
vn -0.661600 0.421500 0.620200
vn 0.661600 0.421500 0.620200
vn 0.895600 -0.254600 -0.364800
vn 0.004900 -1.000000 0.000000
vn -0.729700 -0.683800 0.000000
vn -0.324500 -0.256300 -0.910500
vn 0.003300 -0.475500 -0.879700
vn 0.578700 0.436200 -0.689100
vn 0.000000 0.666600 -0.745400
vn 0.578700 0.436200 0.689100
vn 0.000000 0.666600 0.745400
vn -0.324500 -0.256300 0.910500
vn 0.003300 -0.475500 0.879700
vn -1.000000 0.000000 0.000000
vn -0.359600 0.000000 -0.933100
vn 0.756400 0.000000 -0.654100
vn 0.756400 0.000000 0.654100
vn -0.359600 0.000000 0.933100
vn -0.729700 0.683700 0.000000
vn -0.324500 0.256300 -0.910500
vn 0.578700 -0.436200 -0.689100
vn 0.578700 -0.436200 0.689100
vn -0.324500 0.256300 0.910500
vn 0.000000 0.470900 -0.882200
vn 0.000000 -0.666600 -0.745400
vn 0.000000 -0.666600 0.745400
vn 0.000000 0.470900 0.882200
vn 0.729700 0.683700 0.000000
vn 0.324500 0.256300 -0.910500
vn -0.578700 -0.436200 -0.689100
vn -0.578700 -0.436200 0.689100
vn 0.324500 0.256300 0.910500
vn 1.000000 -0.001100 0.000000
vn 0.361000 -0.000700 -0.932600
vn -0.756400 0.000000 -0.654100
vn -0.756400 0.000000 0.654100
vn 0.361000 -0.000700 0.932600
vn 0.736100 -0.676800 0.000000
vn 0.327100 -0.263100 -0.907600
vn -0.578700 0.436200 -0.689100
vn -0.578700 0.436200 0.689100
vn 0.327100 -0.263100 0.907600
vn -0.004900 -1.000000 0.000000
vn 0.729700 -0.683800 0.000000
vn 0.324500 -0.256300 0.910500
vn -0.003300 -0.475400 0.879700
vn 0.324500 -0.256300 -0.910500
vn -0.003300 -0.475400 -0.879700
vn 1.000000 0.000000 0.000000
vn 0.359600 0.000000 0.933100
vn 0.359600 0.000000 -0.933100
vn -1.000000 -0.001100 0.000000
vn -0.361000 -0.000700 0.932600
vn -0.361000 -0.000700 -0.932600
vn -0.736100 -0.676800 0.000000
vn -0.327100 -0.263100 0.907600
vn -0.327100 -0.263100 -0.907600
vn 0.000000 -1.000000 0.004800
vn 0.000000 -0.657400 -0.753500
vn 0.898300 -0.248500 -0.362400
vn 0.863600 -0.504100 0.003400
vn -0.898300 -0.248500 -0.362400
vn -0.863600 -0.504100 0.003400
vn 0.000000 0.000000 -1.000000
vn 0.925200 0.000000 -0.379500
vn -0.925200 0.000000 -0.379500
vn 0.898300 0.248500 -0.362400
vn 0.661600 -0.421500 0.620200
vn -0.898300 0.248500 -0.362400
vn 0.898300 0.248500 0.362300
vn -0.898300 0.248500 0.362300
vn 0.000000 -0.000900 1.000000
vn 0.924700 -0.000600 0.380700
vn -0.924700 -0.000600 0.380700
vn 0.000000 -0.650300 0.759600
vn 0.895600 -0.254600 0.364700
vn -0.895600 -0.254600 0.364700
vn 0.729700 -0.683700 0.000000
vn 0.729700 0.683800 0.000000
vn -0.729700 0.683800 0.000000
vn -0.898300 -0.248400 0.362300
vn -0.863600 -0.504100 -0.003500
vn 0.898300 -0.248400 0.362300
vn 0.863600 -0.504100 -0.003500
vn -0.661500 -0.421500 0.620200
vn 0.924600 -0.000600 -0.380700
vn -0.661500 0.421500 0.620200
vn 0.661500 0.421500 0.620200
s 1
f 1/1/1 2/2/2 3/3/3 4/4/4
f 4/4/4 3/3/3 5/5/5 6/6/6
f 6/6/6 5/5/5 7/7/7 8/8/8
f 8/8/8 7/7/7 9/9/9 10/10/10
f 1/1/1 10/11/10 9/12/9 2/2/2
f 2/2/2 11/13/11 12/14/12 3/3/3
f 3/3/3 12/14/12 13/15/13 5/5/5
f 5/5/5 13/15/13 14/16/14 7/7/7
f 7/7/7 14/16/14 15/17/15 9/9/9
f 9/12/9 15/18/15 11/13/11 2/2/2
f 11/13/11 16/19/16 17/20/17 12/14/12
f 12/14/12 17/20/17 18/21/18 13/15/13
f 13/15/13 18/21/18 19/22/19 14/16/14
f 14/16/14 19/22/19 20/23/20 15/17/15
f 15/18/15 20/24/20 16/19/16 11/13/11
f 16/19/16 21/25/21 22/26/22 17/20/17
f 17/20/17 22/26/22 23/27/23 18/21/18
f 18/21/18 23/27/23 24/28/24 19/22/19
f 19/22/19 24/28/24 25/29/25 20/23/20
f 20/24/20 25/30/25 21/25/21 16/19/16
f 21/25/21 26/31/26 27/32/27 22/26/22
f 22/26/22 27/32/27 28/33/28 23/27/23
f 23/27/23 28/33/28 29/34/29 24/28/24
f 24/28/24 29/34/29 30/35/30 25/29/25
f 25/30/25 30/36/30 26/31/26 21/25/21
f 26/37/26 31/38/31 32/39/32 27/40/27
f 27/40/27 32/39/32 33/41/33 28/42/28
f 28/42/28 33/41/33 34/43/34 29/44/29
f 29/44/29 34/43/34 35/45/35 30/46/30
f 30/47/30 35/48/35 31/38/31 26/37/26
f 31/38/31 36/49/36 37/50/37 32/39/32
f 32/39/32 37/50/37 38/51/38 33/41/33
f 33/41/33 38/51/38 39/52/39 34/43/34
f 34/43/34 39/52/39 40/53/40 35/45/35
f 35/48/35 40/54/40 36/49/36 31/38/31
f 36/49/36 1/1/1 4/4/4 37/50/37
f 37/50/37 4/4/4 6/6/6 38/51/38
f 38/51/38 6/6/6 8/8/8 39/52/39
f 39/52/39 8/8/8 10/10/10 40/53/40
f 1/1/1 36/49/36 40/54/40 10/11/10
f 41/55/41 42/56/42 43/57/43 44/58/44
f 44/59/44 43/60/43 45/61/45 46/62/46
f 46/62/46 45/61/45 47/63/47 48/64/48
f 48/64/48 47/63/47 49/65/49 50/66/50
f 41/55/41 50/66/50 49/65/49 42/56/42
f 42/56/42 51/67/51 52/68/52 43/57/43
f 43/60/43 52/69/52 53/70/53 45/61/45
f 45/61/45 53/70/53 54/71/54 47/63/47
f 47/63/47 54/71/54 55/72/55 49/65/49
f 49/65/49 55/72/55 51/67/51 42/56/42
f 51/67/51 56/73/56 57/74/57 52/68/52
f 52/69/52 57/75/57 58/76/58 53/70/53
f 53/70/53 58/76/58 59/77/59 54/71/54
f 54/71/54 59/77/59 60/78/60 55/72/55
f 55/72/55 60/78/60 56/73/56 51/67/51
f 56/73/56 61/79/21 62/80/61 57/74/57
f 57/75/57 62/81/61 63/82/62 58/76/58
f 58/76/58 63/82/62 64/83/63 59/77/59
f 59/77/59 64/83/63 65/84/64 60/78/60
f 60/78/60 65/84/64 61/79/21 56/73/56
f 61/85/21 66/86/65 67/87/66 62/88/61
f 62/35/61 67/89/66 68/90/67 63/91/62
f 63/91/62 68/90/67 69/92/68 64/93/63
f 64/93/63 69/92/68 70/94/69 65/95/64
f 65/95/64 70/94/69 66/86/65 61/85/21
f 66/86/65 71/96/70 72/97/71 67/87/66
f 67/89/66 72/98/71 73/99/72 68/90/67
f 68/90/67 73/99/72 74/100/73 69/92/68
f 69/92/68 74/100/73 75/101/74 70/94/69
f 70/94/69 75/101/74 71/96/70 66/86/65
f 71/96/70 76/102/75 77/103/76 72/97/71
f 72/98/71 77/104/76 78/105/77 73/99/72
f 73/99/72 78/105/77 79/106/78 74/100/73
f 74/100/73 79/106/78 80/107/79 75/101/74
f 75/101/74 80/107/79 76/102/75 71/96/70
f 76/102/75 41/55/41 44/58/44 77/103/76
f 77/104/76 44/59/44 46/62/46 78/105/77
f 78/105/77 46/62/46 48/64/48 79/106/78
f 79/106/78 48/64/48 50/66/50 80/107/79
f 41/55/41 76/102/75 80/107/79 50/66/50
f 81/108/80 82/109/81 83/110/82 84/111/83
f 84/9/83 83/17/82 85/112/78 86/113/48
f 86/113/48 85/112/78 87/114/77 88/115/46
f 88/115/46 87/114/77 89/116/84 90/117/85
f 81/108/80 90/117/85 89/116/84 82/109/81
f 82/109/81 91/118/86 92/119/87 83/110/82
f 83/17/82 92/23/87 93/120/73 85/112/78
f 85/112/78 93/120/73 94/121/72 87/114/77
f 87/114/77 94/121/72 95/122/88 89/116/84
f 89/116/84 95/122/88 91/118/86 82/109/81
f 91/118/86 96/123/65 97/124/69 92/119/87
f 92/23/87 97/29/69 98/125/68 93/120/73
f 93/120/73 98/125/68 99/126/67 94/121/72
f 94/121/72 99/126/67 100/127/66 95/122/88
f 95/122/88 100/127/66 96/123/65 91/118/86
f 96/123/65 101/85/21 102/88/64 97/124/69
f 97/29/69 102/35/64 103/91/63 98/125/68
f 98/125/68 103/91/63 104/93/62 99/126/67
f 99/126/67 104/93/62 105/95/61 100/127/66
f 100/127/66 105/95/61 101/85/21 96/123/65
f 101/128/21 106/129/56 107/130/60 102/131/64
f 102/46/64 107/45/60 108/132/59 103/133/63
f 103/133/63 108/132/59 109/134/58 104/135/62
f 104/135/62 109/134/58 110/136/57 105/137/61
f 105/137/61 110/136/57 106/129/56 101/128/21
f 106/129/56 111/138/89 112/139/90 107/130/60
f 107/45/60 112/53/90 113/140/54 108/132/59
f 108/132/59 113/140/54 114/141/53 109/134/58
f 109/134/58 114/141/53 115/142/91 110/136/57
f 110/136/57 115/142/91 111/138/89 106/129/56
f 111/138/89 116/143/92 117/144/93 112/139/90
f 112/53/90 117/10/93 118/145/47 113/140/54
f 113/140/54 118/145/47 119/146/45 114/141/53
f 114/141/53 119/146/45 120/147/94 115/142/91
f 115/142/91 120/147/94 116/143/92 111/138/89
f 116/143/92 81/108/80 84/111/83 117/144/93
f 117/10/93 84/9/83 86/113/48 118/145/47
f 118/145/47 86/113/48 88/115/46 119/146/45
f 119/146/45 88/115/46 90/117/85 120/147/94
f 81/108/80 116/143/92 120/147/94 90/117/85
f 121/148/95 122/149/96 123/150/97 124/151/98
f 124/151/98 123/150/97 125/152/39 126/153/8
f 126/153/8 125/152/39 127/154/38 128/155/6
f 128/155/6 127/154/38 129/156/99 130/157/100
f 121/148/95 130/103/100 129/58/99 122/149/96
f 122/149/96 131/158/101 132/159/102 123/150/97
f 123/150/97 132/159/102 133/160/34 125/152/39
f 125/152/39 133/160/34 134/161/33 127/154/38
f 127/154/38 134/161/33 135/162/103 129/156/99
f 129/58/99 135/57/103 131/158/101 122/149/96
f 131/158/101 136/163/26 137/164/104 132/159/102
f 132/159/102 137/164/104 138/165/105 133/160/34
f 133/160/34 138/165/105 139/166/28 134/161/33
f 134/161/33 139/166/28 140/167/106 135/162/103
f 135/57/103 140/68/106 136/163/26 131/158/101
f 136/163/26 141/168/21 142/169/25 137/164/104
f 137/164/104 142/169/25 143/170/24 138/165/105
f 138/165/105 143/170/24 144/171/23 139/166/28
f 139/166/28 144/171/23 145/172/22 140/167/106
f 140/68/106 145/74/22 141/168/21 136/163/26
f 141/168/21 146/173/16 147/174/107 142/169/25
f 142/169/25 147/174/107 148/175/19 143/170/24
f 143/170/24 148/175/19 149/176/18 144/171/23
f 144/171/23 149/176/18 150/177/108 145/172/22
f 145/74/22 150/80/108 146/173/16 141/168/21
f 146/178/16 151/179/109 152/180/110 147/181/107
f 147/181/107 152/180/110 153/182/14 148/183/19
f 148/183/19 153/182/14 154/184/13 149/185/18
f 149/185/18 154/184/13 155/186/111 150/187/108
f 150/88/108 155/87/111 151/179/109 146/178/16
f 151/179/109 156/188/112 157/189/113 152/180/110
f 152/180/110 157/189/113 158/190/7 153/182/14
f 153/182/14 158/190/7 159/191/5 154/184/13
f 154/184/13 159/191/5 160/192/114 155/186/111
f 155/87/111 160/97/114 156/188/112 151/179/109
f 156/188/112 121/148/95 124/151/98 157/189/113
f 157/189/113 124/151/98 126/153/8 158/190/7
f 158/190/7 126/153/8 128/155/6 159/191/5
f 159/191/5 128/155/6 130/157/100 160/192/114
f 121/148/95 156/188/112 160/97/114 130/103/100
f 161/193/80 162/194/115 163/60/82 164/59/83
f 164/195/83 163/196/82 165/197/78 166/198/48
f 166/198/48 165/197/78 167/199/77 168/200/46
f 168/200/46 167/199/77 169/201/84 170/202/85
f 161/193/80 170/202/85 169/201/84 162/194/115
f 162/194/115 171/203/86 172/69/87 163/60/82
f 163/196/82 172/204/87 173/205/73 165/197/78
f 165/197/78 173/205/73 174/206/72 167/199/77
f 167/199/77 174/206/72 175/207/88 169/201/84
f 169/201/84 175/207/88 171/203/86 162/194/115
f 171/203/86 176/208/116 177/75/69 172/69/87
f 172/204/87 177/209/69 178/210/68 173/205/73
f 173/205/73 178/210/68 179/211/67 174/206/72
f 174/206/72 179/211/67 180/212/66 175/207/88
f 175/207/88 180/212/66 176/208/116 171/203/86
f 176/208/116 181/213/21 182/81/64 177/75/69
f 177/209/69 182/214/64 183/215/63 178/210/68
f 178/210/68 183/215/63 184/216/62 179/211/67
f 179/211/67 184/216/62 185/217/61 180/212/66
f 180/212/66 185/217/61 181/213/21 176/208/116
f 181/34/21 186/218/117 187/89/60 182/35/64
f 182/36/64 187/219/60 188/220/59 183/31/63
f 183/31/63 188/220/59 189/221/58 184/32/62
f 184/32/62 189/221/58 190/222/57 185/33/61
f 185/33/61 190/222/57 186/218/117 181/34/21
f 186/218/117 191/223/89 192/98/90 187/89/60
f 187/219/60 192/224/90 193/225/54 188/220/59
f 188/220/59 193/225/54 194/226/53 189/221/58
f 189/221/58 194/226/53 195/227/91 190/222/57
f 190/222/57 195/227/91 191/223/89 186/218/117
f 191/223/89 196/228/92 197/104/93 192/98/90
f 192/224/90 197/229/93 198/230/47 193/225/54
f 193/225/54 198/230/47 199/231/45 194/226/53
f 194/226/53 199/231/45 200/232/94 195/227/91
f 195/227/91 200/232/94 196/228/92 191/223/89
f 196/228/92 161/193/80 164/59/83 197/104/93
f 197/229/93 164/195/83 166/198/48 198/230/47
f 198/230/47 166/198/48 168/200/46 199/231/45
f 199/231/45 168/200/46 170/202/85 200/232/94
f 161/193/80 196/228/92 200/232/94 170/202/85
f 201/233/1 202/234/2 203/235/118 204/236/119
f 204/111/119 203/110/118 205/237/5 206/238/6
f 206/238/6 205/237/5 207/239/7 208/240/8
f 208/240/8 207/239/7 209/241/120 210/242/121
f 201/233/1 210/242/121 209/241/120 202/234/2
f 202/234/2 211/243/11 212/244/12 203/235/118
f 203/110/118 212/119/12 213/245/13 205/237/5
f 205/237/5 213/245/13 214/246/14 207/239/7
f 207/239/7 214/246/14 215/247/15 209/241/120
f 209/241/120 215/247/15 211/243/11 202/234/2
f 211/243/11 216/248/16 217/249/108 212/244/12
f 212/119/12 217/124/108 218/250/18 213/245/13
f 213/245/13 218/250/18 219/251/19 214/246/14
f 214/246/14 219/251/19 220/252/107 215/247/15
f 215/247/15 220/252/107 216/248/16 211/243/11
f 216/248/16 221/185/21 222/187/22 217/249/108
f 217/124/108 222/88/22 223/178/23 218/250/18
f 218/250/18 223/178/23 224/181/24 219/251/19
f 219/251/19 224/181/24 225/183/25 220/252/107
f 220/252/107 225/183/25 221/185/21 216/248/16
f 221/253/21 226/254/26 227/255/106 222/256/22
f 222/131/22 227/130/106 228/257/122 223/258/23
f 223/258/23 228/257/122 229/259/29 224/260/24
f 224/260/24 229/259/29 230/261/104 225/262/25
f 225/262/25 230/261/104 226/254/26 221/253/21
f 226/254/26 231/263/31 232/264/32 227/255/106
f 227/130/106 232/139/32 233/265/33 228/257/122
f 228/257/122 233/265/33 234/266/34 229/259/29
f 229/259/29 234/266/34 235/267/123 230/261/104
f 230/261/104 235/267/123 231/263/31 226/254/26
f 231/263/31 236/268/36 237/269/37 232/264/32
f 232/139/32 237/144/37 238/270/124 233/265/33
f 233/265/33 238/270/124 239/271/125 234/266/34
f 234/266/34 239/271/125 240/272/40 235/267/123
f 235/267/123 240/272/40 236/268/36 231/263/31
f 236/268/36 201/233/1 204/236/119 237/269/37
f 237/144/37 204/111/119 206/238/6 238/270/124
f 238/270/124 206/238/6 208/240/8 239/271/125
f 239/271/125 208/240/8 210/242/121 240/272/40
f 201/233/1 236/268/36 240/272/40 210/242/121

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 386 B

View File

@ -33,10 +33,6 @@ computer:admiral128
There's also a `computer:computer' alias to `computer:babytower'.
License:
Sourcecode: WTFPL (see below)
Graphics: WTFPL (see below)
Thanks to all the people in the forums and the #minetest IRC channel for
their support and suggestions; in no particular order:
OldCoder, Josh, tonyka, VanessaE, davidpace, Jordach, and all the other
@ -45,17 +41,3 @@ Thanks to all the people in the forums and the #minetest IRC channel for
See also:
http://minetest.net/
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2012 Diego Martínez <lkaezadl3@gmail.com>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

View File

@ -1,3 +1,6 @@
local S = homedecor_i18n.gettext
-- Amiga 500 lookalike
computer.register("computer: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
local mo_sbox = {
type = "fixed",
@ -157,7 +173,7 @@ local mo_sbox = {
}
minetest.register_node("computer:monitor", {
description = "Monitor and keyboard",
description = S("Monitor and keyboard"),
inventory_image = "computer_monitor_inv.png",
drawtype = "mesh",
mesh = "computer_monitor.obj",
@ -175,7 +191,6 @@ minetest.register_node("computer:monitor", {
})
minetest.register_node("computer:monitor_on", {
description = "Monitor and keyboard",
drawtype = "mesh",
mesh = "computer_monitor.obj",
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)
minetest.register_node("computer:router", {
description = "WIFI Router",
description = S("WIFI Router"),
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",
{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
minetest.register_node("computer:tower", {
description = "Computer Tower",
description = S("Computer Tower"),
inventory_image = "computer_tower_inv.png",
drawtype = "mesh",
mesh = "computer_tower.obj",
@ -245,7 +260,7 @@ minetest.register_alias("computer:tower_on", "computer:tower")
-- Printer/scaner combo
minetest.register_node("computer:printer", {
description = "Printer Scaner Combo",
description = S("Printer-Scanner Combo"),
inventory_image = "computer_printer_inv.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"},
@ -273,7 +288,7 @@ minetest.register_node("computer:printer", {
--Rack Server
minetest.register_node("computer:server", {
drawtype = "nodebox",
description = "Rack Server",
description = S("Rack Server"),
tiles = {
'computer_server_t.png',
'computer_server_bt.png',
@ -303,7 +318,8 @@ minetest.register_node("computer:server", {
on_place = function(itemstack, placer, pointed_thing)
local pos = pointed_thing.above
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
end
return minetest.item_place(itemstack, placer, pointed_thing)
@ -312,7 +328,6 @@ minetest.register_node("computer:server", {
minetest.register_node("computer:server_on", {
drawtype = "nodebox",
description = "Rack Server",
tiles = {
'computer_server_t.png',
'computer_server_bt.png',

View File

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

View File

@ -1,6 +0,0 @@
# Language: Español
# Author: Diego Martínez <lkaezadl3@gmail.com>
Plastic sheet = Placa de Plastico
Unprocessed Plastic base = Base de Plastico No Procesada

View File

@ -1,15 +1,12 @@
-- Copyright (C) 2012-2013 Diego Martínez <kaeza@users.sf.net>
-- License is WTFPL (see README.txt).
-- 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 = rawget(_G, "intllib") and intllib.Getter() or function(s) return s end
local S = homedecor_i18n.gettext
if (not minetest.get_modpath("homedecor")) then
minetest.register_craftitem(":homedecor:plastic_sheeting", {
minetest.register_craftitem(":basic_materials:plastic_sheet", {
description = S("Plastic sheet"),
inventory_image = "homedecor_plastic_sheeting.png",
})
@ -52,7 +49,7 @@ if (not minetest.get_modpath("homedecor")) then
minetest.register_craft({
type = "cooking",
output = "homedecor:plastic_sheeting",
output = "basic_materials:plastic_sheet",
recipe = "homedecor:plastic_base",
})
@ -64,7 +61,7 @@ if (not minetest.get_modpath("homedecor")) then
minetest.register_craft({
type = 'fuel',
recipe = 'homedecor:plastic_sheeting',
recipe = 'basic_materials:plastic_sheet',
burntime = 30,
})

View File

@ -1,54 +1,52 @@
-- Copyright (C) 2012-2013 Diego Martínez <kaeza@users.sf.net>
-- License is WTFPL (see README.txt).
minetest.register_craft({
output = "computer:shefriendSOO",
recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "group:wood", "homedecor:plastic_sheeting" }
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "default:glass", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "group:wood", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computer:slaystation",
recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "group:wood", "homedecor:plastic_sheeting" }
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "group:wood", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computer:vanio",
recipe = {
{ "homedecor:plastic_sheeting", "", "" },
{ "basic_materials:plastic_sheet", "", "" },
{ "default:glass", "", "" },
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computer:specter",
recipe = {
{ "", "", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
{ "", "", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computer:slaystation2",
recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting" }
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "default:steel_ingot", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computer:admiral64",
recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "group:wood", "group:wood", "group:wood" }
}
})
@ -56,7 +54,7 @@ minetest.register_craft({
minetest.register_craft({
output = "computer:admiral128",
recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }
}
})
@ -64,16 +62,16 @@ minetest.register_craft({
minetest.register_craft({
output = "computer:wee",
recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "default:copper_ingot", "homedecor:plastic_sheeting" }
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "default:copper_ingot", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computer:piepad",
recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting" }
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "default:glass", "basic_materials:plastic_sheet" }
}
})
@ -82,9 +80,9 @@ minetest.register_craft({
minetest.register_craft({
output = "computer:monitor",
recipe = {
{ "homedecor:plastic_sheeting", "default:glass","" },
{ "homedecor:plastic_sheeting", "default:glass","" },
{ "homedecor:plastic_sheeting", "default:mese_crystal_fragment", "homedecor:plastic_sheeting" }
{ "basic_materials:plastic_sheet", "default:glass","" },
{ "basic_materials:plastic_sheet", "default:glass","" },
{ "basic_materials:plastic_sheet", "default:mese_crystal_fragment", "basic_materials:plastic_sheet" }
}
})
@ -92,35 +90,35 @@ minetest.register_craft({
output = "computer:router",
recipe = {
{ "default:steel_ingot","","" },
{ "default:steel_ingot" ,"homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "default:mese_crystal_fragment","homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
{ "default:steel_ingot" ,"basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "default:mese_crystal_fragment","basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computer:tower",
recipe = {
{ "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting" }
{ "basic_materials:plastic_sheet", "default:steel_ingot", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "default:mese_crystal", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "default:steel_ingot", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computer:printer",
recipe = {
{ "homedecor:plastic_sheeting", "default:steel_ingot","" },
{ "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "default:coal_lump", "homedecor:plastic_sheeting" }
{ "basic_materials:plastic_sheet", "default:steel_ingot","" },
{ "basic_materials:plastic_sheet", "default:mese_crystal", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "default:coal_lump", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computer:printer",
recipe = {
{ "homedecor:plastic_sheeting", "default:steel_ingot","" },
{ "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "dye:black", "homedecor:plastic_sheeting", }
{ "basic_materials:plastic_sheet", "default:steel_ingot","" },
{ "basic_materials:plastic_sheet", "default:mese_crystal", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "dye:black", "basic_materials:plastic_sheet", }
}
})
@ -136,8 +134,8 @@ minetest.register_craft({
minetest.register_craft({
output = "computer:tetris_arcade",
recipe = {
{ "homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting", },
{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal", "basic_materials:plastic_sheet", },
{ "dye:black", "default:glass", "dye:black" },
{ "homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting" }
{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal", "basic_materials:plastic_sheet" }
}
})

View File

@ -1,3 +1,6 @@
local S = homedecor_i18n.gettext
local shapes = {
{ { x = {0, 1, 0, 1}, y = {0, 0, 1, 1} } },
@ -30,12 +33,12 @@ local colors = { "computer_cyan.png", "computer_magenta.png", "computer_red.png"
local background = "image[0,0;3.55,6.66;computer_black.png]"
local buttons = "button[3,4.5;0.6,0.6;left;<]"
.."button[3.6,4.5;0.6,0.6;rotateleft;L]"
.."button[3.6,4.5;0.6,0.6;rotateleft;"..minetest.formspec_escape(S("L")).."]"
.."button[4.2,4.5;0.6,0.6;down;v]"
.."button[4.2,5.3;0.6,0.6;drop;V]"
.."button[4.8,4.5;0.6,0.6;rotateright;R]"
.."button[4.8,4.5;0.6,0.6;rotateright;"..minetest.formspec_escape(S("R")).."]"
.."button[5.4,4.5;0.6,0.6;right;>]"
.."button[3.5,3;2,2;new;New Game]"
.."button[3.5,3;2,2;new;"..minetest.formspec_escape(S("New Game")).."]"
local formsize = "size[5.9,5.7]"
local boardx, boardy = 0, 0
@ -228,7 +231,7 @@ local function step(pos, fields)
local scr = { formsize, background,
t.boardstring, t.previewstring,
draw_shape(t.cur, t.x, t.y, t.rot, boardx, boardy),
"label[3.8,0.1;Next...]label[3.8,2.7;Score: ",
"label[3.8,0.1;"..S("Next...").."]label[3.8,2.7;"..S("Score: "),
t.score, close, buttons }
@ -241,7 +244,7 @@ local function step(pos, fields)
end
minetest.register_node("computer:tetris_arcade", {
description="Tetris Arcade",
description=S("Tetris Arcade"),
drawtype = "mesh",
mesh = "tetris_arcade.obj",
tiles = {"tetris_arcade.png"},
@ -259,7 +262,8 @@ minetest.register_node("computer:tetris_arcade", {
},
on_construct = function(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)
end,
on_timer = function(pos)
@ -275,7 +279,7 @@ minetest.register_node("computer:tetris_arcade", {
return itemstack
end
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
end
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
homedecor

View File

@ -1,3 +1,6 @@
local S = homedecor_i18n.gettext
screwdriver = screwdriver or {}
local function start_smoke(pos, node, clicker, chimney)
@ -13,8 +16,8 @@ local function start_smoke(pos, node, clicker, chimney)
end, s_handle)
end
minetest.delete_particlespawner(id)
this_spawner_meta:set_int("smoky", nil)
this_spawner_meta:set_int("sound", nil)
this_spawner_meta:set_int("smoky", 0)
this_spawner_meta:set_int("sound", 0)
return
end
@ -31,7 +34,7 @@ local function start_smoke(pos, node, clicker, chimney)
})
if chimney == 1 then
this_spawner_meta:set_int("smoky", id)
this_spawner_meta:set_int("sound", nil)
this_spawner_meta:set_int("sound", 0)
else
s_handle = minetest.sound_play("fire_small", {
pos = pos,
@ -59,47 +62,44 @@ local function stop_smoke(pos)
end, s_handle)
end
this_spawner_meta:set_int("smoky", nil)
this_spawner_meta:set_int("sound", nil)
this_spawner_meta:set_int("smoky", 0)
this_spawner_meta:set_int("sound", 0)
end
-- FLAME TYPES
local flame_types = {"fake", "ice"}
minetest.register_node("fake_fire:ice_fire", {
inventory_image = "ice_fire_inv.png",
description = S("Ice fire"),
drawtype = "plantlike",
paramtype = "light",
paramtype2 = "facedir",
groups = {dig_immediate=3, not_in_creative_inventory=1},
sunlight_propagates = true,
buildable_to = true,
walkable = false,
light_source = 14,
waving = 1,
tiles = {
{name="ice_fire_animated.png", animation={type="vertical_frames",
aspect_w=16, aspect_h=16, length=1.5}},
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
start_smoke(pos, node, clicker)
return itemstack
end,
on_destruct = function (pos)
stop_smoke(pos)
minetest.sound_play("fire_extinguish", {
pos = pos, max_hear_distance = 5
})
end,
drop = ""
})
for _, f in ipairs(flame_types) do
minetest.register_node("fake_fire:"..f.."_fire", {
inventory_image = f.."_fire_inv.png",
description = f.." fire",
drawtype = "plantlike",
paramtype = "light",
paramtype2 = "facedir",
groups = {dig_immediate=3, not_in_creative_inventory=1},
sunlight_propagates = true,
buildable_to = true,
walkable = false,
light_source = 14,
waving = 1,
tiles = {
{name=f.."_fire_animated.png", animation={type="vertical_frames",
aspect_w=16, aspect_h=16, length=1.5}},
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
start_smoke(pos, node, clicker)
return itemstack
end,
on_destruct = function (pos)
stop_smoke(pos)
minetest.sound_play("fire_extinguish", {
pos = pos, max_hear_distance = 5
})
end,
drop = ""
})
end
minetest.register_alias("fake_fire:fake_fire", "fire:permanent_flame")
minetest.register_node("fake_fire:fancy_fire", {
inventory_image = "fancy_fire_inv.png",
description = "Fancy Fire",
description = S("Fancy Fire"),
drawtype = "mesh",
mesh = "fancy_fire.obj",
paramtype = "light",
@ -136,7 +136,7 @@ minetest.register_node("fake_fire:fancy_fire", {
-- EMBERS
minetest.register_node("fake_fire:embers", {
description = "Glowing Embers",
description = S("Glowing Embers"),
tiles = {
{name="embers_animated.png", animation={type="vertical_frames",
aspect_w=16, aspect_h=16, length=2}},
@ -148,12 +148,16 @@ minetest.register_node("fake_fire:embers", {
})
-- CHIMNEYS
local materials = {"stone", "sandstone"}
local materials = {
{ "stone", S("Stone chimney top") },
{ "sandstone", S("Sandstone chimney top") },
}
for _, m in ipairs(materials) do
minetest.register_node("fake_fire:chimney_top_"..m, {
description = "Chimney Top - "..m,
tiles = {"default_"..m..".png^chimney_top.png", "default_"..m..".png"},
for _, mat in ipairs(materials) do
local name, desc = unpack(mat)
minetest.register_node("fake_fire:chimney_top_"..name, {
description = desc,
tiles = {"default_"..name..".png^chimney_top.png", "default_"..name..".png"},
groups = {snappy=3},
paramtype = "light",
sounds = default.node_sound_stone_defaults(),
@ -174,48 +178,23 @@ for _, m in ipairs(materials) do
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:chimney_top_'..m,
recipe = {"default:torch", "stairs:slab_"..m}
output = 'fake_fire:chimney_top_'..name,
recipe = {"default:torch", "stairs:slab_"..name}
})
end
-- FLINT and STEEL
minetest.register_tool("fake_fire:flint_and_steel", {
description = "Flint and steel",
inventory_image = "flint_and_steel.png",
liquids_pointable = false,
stack_max = 1,
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=0,
groupcaps={flamable = {uses=65, maxlevel=1}}
},
on_use = function(itemstack, user, pointed_thing)
if pointed_thing.type == "node" and minetest.get_node(pointed_thing.above).name == "air" then
if not minetest.is_protected(pointed_thing.above, user:get_player_name()) then
if string.find(minetest.get_node(pointed_thing.under).name, "ice") then
minetest.set_node(pointed_thing.above, {name="fake_fire:ice_fire"})
else
minetest.set_node(pointed_thing.above, {name="fake_fire:fake_fire"})
end
else
minetest.chat_send_player(user:get_player_name(), "This area is protected!")
end
else
return
end
minetest.register_alias("fake_fire:flint_and_steel", "fire:flint_and_steel")
itemstack:add_wear(65535/65)
return itemstack
minetest.override_item("default:ice", {
on_ignite = function(pos, igniter)
local flame_pos = {x = pos.x, y = pos.y + 1, z = pos.z}
if minetest.get_node(flame_pos).name == "air" then
minetest.set_node(flame_pos, {name = "fake_fire:ice_fire"})
end
end
})
-- CRAFTS
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:flint_and_steel',
recipe = {"default:obsidian_shard", "default:steel_ingot"}
})
minetest.register_craft({
type = "shapeless",

View File

@ -1,43 +1,53 @@
local S = homedecor.gettext
local S = homedecor_i18n.gettext
local bathroom_tile_colors = {
{ "1", S("white/grey"), "#c0c0c0:200" },
{ "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" }
}
minetest.register_node("homedecor:bathroom_tiles_dark", {
description = S("Bathroom/kitchen tiles (dark)"),
tiles = {
"homedecor_bathroom_tiles_bg.png"
},
overlay_tiles = {
{ name = "homedecor_bathroom_tiles_fg.png", color = 0xff606060 },
},
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette_extended.png",
groups = {cracky=3, ud_param2_colorable = 1},
sounds = default.node_sound_stone_defaults(),
on_construct = unifieddyes.on_construct,
})
for _, c in ipairs(bathroom_tile_colors) do
local color, shade, hue = unpack(c)
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",
groups = {cracky=3, ud_param2_colorable = 1},
sounds = default.node_sound_stone_defaults(),
on_construct = unifieddyes.on_construct,
})
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 = {
coloredtile,
coloredtile,
coloredtile,
coloredtile,
"("..coloredtile..")^[transformR90",
"("..coloredtile..")^[transformR90"
},
groups = {cracky=3},
paramtype = "light",
sounds = default.node_sound_stone_defaults(),
})
end
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",
groups = {cracky=3, ud_param2_colorable = 1},
sounds = default.node_sound_stone_defaults(),
on_construct = unifieddyes.on_construct,
})
local tr_cbox = {
type = "fixed",
@ -102,3 +112,55 @@ homedecor.register("medicine_cabinet_open", {
minetest.swap_node(pos, node)
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
})

View File

@ -1,4 +1,5 @@
local S = homedecor.gettext
local S = homedecor_i18n.gettext
local toilet_sbox = {
type = "fixed",
@ -17,16 +18,16 @@ homedecor.register("toilet", {
description = S("Toilet"),
mesh = "homedecor_toilet_closed.obj",
tiles = {
"homedecor_marble.png^[colorize:#ffffff:175",
"homedecor_marble.png^[colorize:#ffffff:175",
"homedecor_marble.png^[colorize:#ffffff:175",
"homedecor_generic_metal_black.png^[brighten"
"homedecor_marble.png",
"homedecor_marble.png",
"homedecor_marble.png",
{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey }
},
selection_box = toilet_sbox,
node_box = toilet_cbox,
groups = {cracky=3},
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"
minetest.set_node(pos, node)
end
@ -35,18 +36,18 @@ homedecor.register("toilet", {
homedecor.register("toilet_open", {
mesh = "homedecor_toilet_open.obj",
tiles = {
"homedecor_marble.png^[colorize:#ffffff:175",
"homedecor_marble.png^[colorize:#ffffff:175",
"homedecor_marble.png^[colorize:#ffffff:175",
"homedecor_marble.png",
"homedecor_marble.png",
"homedecor_marble.png",
"default_water.png",
"homedecor_generic_metal_black.png^[brighten"
{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey }
},
selection_box = toilet_sbox,
collision_box = toilet_cbox,
drop = "homedecor:toilet",
groups = {cracky=3},
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"
minetest.set_node(pos, node)
minetest.sound_play("homedecor_toilet_flush", {
@ -89,7 +90,7 @@ homedecor.register("sink", {
description = S("Bathroom Sink"),
mesh = "homedecor_bathroom_sink.obj",
tiles = {
"homedecor_marble.png^[colorize:#ffffff:175",
"homedecor_marble.png",
"homedecor_marble.png",
"default_water.png"
},
@ -137,9 +138,9 @@ homedecor.register("taps", {
description = S("Bathroom taps/faucet"),
mesh = "homedecor_bathroom_faucet.obj",
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_black.png^[colorize:#ffffff:200",
"homedecor_generic_metal.png",
"homedecor_generic_metal_bright.png"
},
inventory_image = "3dforniture_taps_inv.png",
@ -162,7 +163,7 @@ homedecor.register("taps_brass", {
tiles = {
"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"
},
inventory_image = "3dforniture_taps_brass_inv.png",
@ -218,7 +219,7 @@ homedecor.register("shower_head", {
drawtype = "mesh",
mesh = "homedecor_shower_head.obj",
tiles = {
"homedecor_generic_metal_black.png^[brighten",
"homedecor_generic_metal.png",
"homedecor_shower_head.png"
},
inventory_image = "homedecor_shower_head_inv.png",
@ -246,6 +247,46 @@ homedecor.register("shower_head", {
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 = {
type = "fixed",
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 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 = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 1.5 }
type = "wallmounted",
wall_side = { -0.5, -0.5, -0.5, 0.5, 0.5, 1.5 }
}
local bed_cbox = {
type = "fixed",
fixed = {
type = "wallmounted",
wall_side = {
{ -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, -0.5, 0.5, 0.18, -0.44 },
@ -36,125 +18,121 @@ local bed_cbox = {
}
local kbed_sbox = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 1.5, 0.5, 1.5 }
type = "wallmounted",
wall_side = { -0.5, -0.5, -0.5, 1.5, 0.5, 1.5 }
}
local kbed_cbox = {
type = "fixed",
fixed = {
type = "wallmounted",
wall_side = {
{ -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, -0.5, 1.5, 0.18, -0.44 },
}
}
for _, c in ipairs(bedcolors) do
local colordesc, color, hue = unpack(c)
local color2=color
if color == "darkgrey" then
color2 = "dark_grey"
homedecor.register("bed_regular", {
mesh = "homedecor_bed_regular.obj",
tiles = {
{ name = "homedecor_bed_frame.png", color = 0xffffffff },
{ name = "default_wood.png", color = 0xffffffff },
{ name = "wool_white.png", color = 0xffffffff },
"wool_white.png",
{ name = "homedecor_bed_bottom.png", color = 0xffffffff },
"wool_white.png^[brighten", -- pillow
},
inventory_image = "homedecor_bed_inv.png",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
description = S("Bed"),
groups = {snappy=3, ud_param2_colorable = 1},
selection_box = bed_sbox,
node_box = bed_cbox,
sounds = default.node_sound_wood_defaults(),
on_rotate = screwdriver.disallow,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
if not placer:get_player_control().sneak then
return homedecor.bed_expansion(pos, placer, itemstack, pointed_thing)
end
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
homedecor.unextend_bed(pos)
end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local itemname = itemstack:get_name()
if itemname == "homedecor:bed_regular" then
homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true)
return itemstack
-- else
-- homedecor.beds_on_rightclick(pos, node, clicker)
-- return itemstack
end
end
homedecor.register("bed_"..color.."_regular", {
mesh = "homedecor_bed_regular.obj",
tiles = {
"homedecor_bed_frame.png",
"default_wood.png",
"wool_white.png",
"wool_"..color2..".png",
"homedecor_bed_bottom.png",
"wool_"..color2..".png^[brighten", -- pillow
},
inventory_image = "homedecor_bed_inv.png^(homedecor_bed_overlay_inv.png^[colorize:"..hue..")",
description = S("Bed (@1)", colordesc),
groups = {snappy=3},
selection_box = bed_sbox,
collision_box = bed_cbox,
sounds = default.node_sound_wood_defaults(),
on_rotate = screwdriver.disallow,
after_place_node = function(pos, placer, itemstack, pointed_thing)
if not placer:get_player_control().sneak then
return homedecor.bed_expansion(pos, placer, itemstack, pointed_thing, color)
end
end,
after_dig_node = function(pos)
homedecor.unextend_bed(pos, color)
end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
if minetest.get_modpath("beds") then
beds.on_rightclick(pos, clicker)
end
return itemstack
})
homedecor.register("bed_extended", {
mesh = "homedecor_bed_extended.obj",
tiles = {
{ name = "homedecor_bed_frame.png", color = 0xffffffff },
{ name = "default_wood.png", color = 0xffffffff },
{ name = "wool_white.png", color = 0xffffffff },
"wool_white.png",
{ name = "homedecor_bed_bottom.png", color = 0xffffffff },
"wool_white.png^[brighten",
},
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = bed_sbox,
node_box = bed_cbox,
groups = {snappy=3, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(),
expand = { forward = "air" },
on_rotate = screwdriver.disallow,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
homedecor.unextend_bed(pos)
end,
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- homedecor.beds_on_rightclick(pos, node, clicker)
-- return itemstack
-- end,
drop = "homedecor:bed_regular"
})
homedecor.register("bed_kingsize", {
mesh = "homedecor_bed_kingsize.obj",
tiles = {
{ name = "homedecor_bed_frame.png", color = 0xffffffff },
{ name = "default_wood.png", color = 0xffffffff },
{ name = "wool_white.png", color = 0xffffffff },
"wool_white.png",
{ name = "homedecor_bed_bottom.png", color = 0xffffffff },
"wool_white.png^[brighten",
},
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
inventory_image = "homedecor_bed_kingsize_inv.png",
description = S("Bed (king sized)"),
groups = {snappy=3, ud_param2_colorable = 1},
selection_box = kbed_sbox,
node_box = kbed_cbox,
sounds = default.node_sound_wood_defaults(),
on_rotate = screwdriver.disallow,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
local inv = digger:get_inventory()
if digger:get_player_control().sneak and inv:room_for_item("main", "homedecor:bed_regular 2") then
inv:remove_item("main", "homedecor:bed_kingsize 1")
inv:add_item("main", "homedecor:bed_regular 2")
end
})
homedecor.register("bed_"..color.."_extended", {
mesh = "homedecor_bed_extended.obj",
tiles = {
"homedecor_bed_frame.png",
"default_wood.png",
"wool_white.png",
"wool_"..color2..".png",
"homedecor_bed_bottom.png",
"wool_"..color2..".png^[brighten",
},
selection_box = bed_sbox,
collision_box = bed_cbox,
sounds = default.node_sound_wood_defaults(),
expand = { forward = "air" },
on_rotate = screwdriver.disallow,
after_dig_node = function(pos)
homedecor.unextend_bed(pos, color)
end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
if minetest.get_modpath("beds") then
beds.on_rightclick(pos, clicker)
end
return itemstack
end,
drop = "homedecor:bed_"..color.."_regular"
})
homedecor.register("bed_"..color.."_kingsize", {
mesh = "homedecor_bed_kingsize.obj",
tiles = {
"homedecor_bed_frame.png",
"default_wood.png",
"wool_white.png",
"wool_"..color2..".png",
"homedecor_bed_bottom.png",
"wool_"..color2..".png^[brighten",
},
inventory_image = "homedecor_bed_kingsize_inv.png^(homedecor_bed_kingsize_overlay_inv.png^[colorize:"..hue..")",
groups = {snappy=3, not_in_creative_inventory=1},
description = S("Bed (@1, king sized)", colordesc),
groups = {snappy=3, not_in_creative_inventory=1},
selection_box = kbed_sbox,
collision_box = kbed_cbox,
sounds = default.node_sound_wood_defaults(),
on_rotate = screwdriver.disallow,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
local inv = digger:get_inventory()
if digger:get_player_control().sneak and inv:room_for_item("main", "bed_"..color.."_regular 1") then
inv:remove_item("main", "homedecor:bed_"..color.."_kingsize 1")
inv:add_item("main", "homedecor:bed_"..color.."_regular 2")
end
end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
if minetest.get_modpath("beds") then
beds.on_rightclick(pos, clicker)
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
end,
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- homedecor.beds_on_rightclick(pos, node, clicker)
-- return itemstack
-- end,
})
for _, w in pairs({ N_("mahogany"), N_("oak") }) do
homedecor.register("nightstand_"..w.."_one_drawer", {
@ -212,3 +190,78 @@ for _, w in pairs({ N_("mahogany"), N_("oak") }) do
},
})
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.gettext
local S = homedecor_i18n.gettext
local function N_(x) return x end
local bookcolors = {
{ N_("red"), "#c00000:150" },
{ N_("green"), "#008000:150" },
{ N_("blue"), "#4040c0:150" },
{ N_("violet"), "#600070:150" },
{ N_("grey"), "#202020:150" },
{ N_("brown"), "#603010:175" }
{ N_("red"), 0xffd26466 },
{ N_("green"), 0xff62aa66 },
{ N_("blue"), 0xff8686d7 },
{ N_("violet"), 0xff9c65a7 },
{ N_("grey"), 0xff757579 },
{ N_("brown"), 0xff896958 }
}
local BOOK_FORMNAME = "homedecor:book_form"
@ -39,17 +38,17 @@ for _, c in ipairs(bookcolors) do
minetest.remove_node(pos)
end
local inv_img = "homedecor_book_inv.png^[colorize:"..hue.."^homedecor_book_trim_inv.png"
homedecor.register("book_"..color, {
description = S("Writable Book (@1)", S(color)),
mesh = "homedecor_book.obj",
tiles = {
"(homedecor_book_cover.png^[colorize:"..hue..")^homedecor_book_cover_trim.png",
"homedecor_book_edges.png"
{ name = "homedecor_book_cover.png", color = hue },
{ 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 },
walkable = false,
stack_max = 1,
@ -90,7 +89,7 @@ for _, c in ipairs(bookcolors) do
if data.title and data.title ~= "" then
meta:set_string("infotext", data.title)
end
if not homedecor.expect_infinite_stacks then
if not creative.is_enabled_for(plname) then
itemstack:take_item()
end
return itemstack
@ -105,9 +104,9 @@ for _, c in ipairs(bookcolors) do
homedecor.register("book_open_"..color, {
mesh = "homedecor_book_open.obj",
tiles = {
"(homedecor_book_cover.png^[colorize:"..hue..")^homedecor_book_cover_trim.png",
"homedecor_book_edges.png",
"homedecor_book_pages.png"
{ name = "homedecor_book_cover.png", color = hue },
{ name = "homedecor_book_edges.png", color = "white" },
{ name = "homedecor_book_pages.png", color = "white" }
},
groups = { snappy=3, oddly_breakable_by_hand=3, not_in_creative_inventory=1 },
drop = "homedecor:book_"..color,
@ -157,13 +156,20 @@ for _, c in ipairs(bookcolors) do
end
minetest.register_on_player_receive_fields(function(player, form_name, fields)
if form_name ~= BOOK_FORMNAME or not fields.save then
return
if form_name ~= BOOK_FORMNAME then
return false
end
local player_name = player:get_player_name()
local pos = player_current_book[player_name]
if not pos then return end
if not pos then
return true
end
local meta = minetest.get_meta(pos)
local owner = meta:get_string("owner")
if owner ~= "" and player_name ~= owner or not fields.save then
player_current_book[player_name] = nil
return true
end
meta:set_string("title", fields.title or "")
meta:set_string("text", fields.text or "")
meta:set_string("owner", player_name)
@ -172,4 +178,10 @@ minetest.register_on_player_receive_fields(function(player, form_name, fields)
end
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_current_book[player_name] = nil
return true
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
local S = homedecor.gettext
local S = homedecor_i18n.gettext
homedecor.register("air_conditioner", {
description = S("Air Conditioner"),
@ -25,7 +25,6 @@ minetest.register_entity("homedecor:mesh_desk_fan", {
})
local add_mesh_desk_fan_entity = function(pos)
print("in add_mesh_desk_fan_entity()")
local param2 = minetest.get_node(pos).param2
local entity = minetest.add_entity(pos, "homedecor:mesh_desk_fan")
if param2 == 0 then
@ -59,7 +58,7 @@ homedecor.register("desk_fan", {
meta:set_string("active", "no")
add_mesh_desk_fan_entity(pos)
end,
on_punch = function(pos)
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local meta = minetest.get_meta(pos)
local entities = minetest.get_objects_inside_radius(pos, 0.1)
local entity = entities[1] or add_mesh_desk_fan_entity(pos)
@ -132,7 +131,7 @@ local r_cbox = homedecor.nodebox.slab_z(-0.25)
homedecor.register("radiator", {
mesh = "homedecor_radiator.obj",
tiles = {
"homedecor_generic_metal_black.png^[colorize:#ffffff:200",
"homedecor_generic_metal.png",
"homedecor_radiator_controls.png"
},
inventory_image = "homedecor_radiator_inv.png",

View File

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

View File

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

View File

@ -4,15 +4,13 @@ Some code copied and modified from the game's default mods (especially
doors) and ironzorg's flowers mod.
Licenses:
* For the lua code, LGPL.
* For the door open/close sound, CC-By-SA 3.0 by Slanesh on freesound.org
* Door open/close sound by Slanesh on freesound.org
http://freesound.org/people/Slanesh/sounds/31768/
* For the gate open/close sound, CC0, by j1987 on freesound.org
* Gate open/close by j1987 on freesound.org
http://freesound.org/people/j1987/sounds/106116/
* For the doorbell sound, CC0 by guitarguy1985 on freesound.org
* Doorbell sound by guitarguy1985 on freesound.org
http://freesound.org/people/guitarguy1985/sounds/69384/
* For the book sound, Public Domain by mckinneysound's on http://www.freesfx.co.uk/
* Book soundn by mckinneysound's on http://www.freesfx.co.uk/
http://www.freesfx.co.uk/sfx/book?p=3
* For the phone ring, Public Domain by andyt's on http://www.freesfx.co.uk/
* Phone ringing sound by andyt's on http://www.freesfx.co.uk/
http://www.freesfx.co.uk/sfx/phone?p=5
* For all images and everything else, WTFPL.

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +1,19 @@
default
basic_materials
unifieddyes
homedecor_i18n
creative
currency
building_blocks?
signs_lib?
moreblocks?
technic?
dye?
bees?
intllib?
bucket?
beds?
flowers?
3d_armor?
skinsdb?
mesecons?
darkage?

View File

@ -1,9 +1,11 @@
-- Node definitions for Homedecor doors
local S = homedecor.gettext
local S = homedecor_i18n.gettext
local function N_(x) return x end
local m_rules = mesecon and mesecon.rules and mesecon.rules.pplate
-- doors
local function isSolid(pos, adjust)
@ -140,11 +142,6 @@ local door_model_list = {
usealpha = true
},
{ name = "glass",
description = N_("Glass Office Door (@1 opening)"),
mesh = "homedecor_door_plain.obj"
},
{ name = "wood_glass_oak",
description = N_("Glass and Wood, Oak-colored (@1 opening)"),
mesh = "homedecor_door_wood_glass.obj",
@ -264,6 +261,7 @@ for i, side in ipairs(sides) do
drop = "homedecor:door_"..doorname.."_left",
mesecons = {
effector = {
rules = m_rules,
action_on = function(pos,node)
local isClosed = getClosed(pos)
if isClosed then
@ -293,10 +291,12 @@ end
-- Gates
local gate_list = {
{ "picket", S("Unpainted Picket Fence Gate") },
{ "picket_white", S("White Picket Fence Gate") },
{ "barbed_wire", S("Barbed Wire Fence Gate") },
{ "chainlink", S("Chainlink Fence Gate") },
{ "picket", S("Unpainted Picket Fence Gate") },
{ "picket_white", S("White Picket Fence Gate") },
{ "barbed_wire", S("Barbed Wire Fence Gate") },
{ "chainlink", S("Chainlink Fence Gate") },
{ "half_door", S("\"Half\" Door") },
{ "half_door_white", S("\"Half\" Door (white)") }
}
local gate_models_closed = {
@ -315,7 +315,12 @@ local gate_models_closed = {
{ -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, 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 = {
@ -334,7 +339,11 @@ local gate_models_open = {
{ 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
{ 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
@ -394,6 +403,7 @@ for i, g in ipairs(gate_list) do
end,
mesecons = {
effector = {
rules = m_rules,
action_on = function(pos,node) homedecor.flip_gate(pos,node,nil,gate, "closed") end
}
}
@ -409,8 +419,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.node_box.fixed = gate_models_open[i]
def.tiles = {
tiles[1],
tiles[2],
tiles[1].."^[transformR90",
tiles[2].."^[transformR270",
tiles[6],
tiles[5],
tiles[4],
@ -422,6 +432,7 @@ for i, g in ipairs(gate_list) do
return itemstack
end
def.mesecons.effector = {
rules = m_rules,
action_off = function(pos,node) homedecor.flip_gate(pos,node,nil,gate, "open") end
}
@ -527,7 +538,7 @@ minetest.register_node("homedecor:japanese_wall_top", {
drawtype = "mesh",
mesh = "homedecor_wall_japanese_top.obj",
tiles = {
"homedecor_generic_wood_luxury.png",
homedecor.lux_wood,
"homedecor_japanese_paper.png"
},
paramtype = "light",
@ -543,7 +554,7 @@ minetest.register_node("homedecor:japanese_wall_middle", {
drawtype = "mesh",
mesh = "homedecor_wall_japanese_middle.obj",
tiles = {
"homedecor_generic_wood_luxury.png",
homedecor.lux_wood,
"homedecor_japanese_paper.png"
},
paramtype = "light",
@ -559,7 +570,7 @@ minetest.register_node("homedecor:japanese_wall_bottom", {
drawtype = "mesh",
mesh = "homedecor_wall_japanese_bottom.obj",
tiles = {
"homedecor_generic_wood_luxury.png",
homedecor.lux_wood,
"homedecor_japanese_paper.png"
},
paramtype = "light",
@ -595,7 +606,7 @@ homedecor.register("door_japanese_closed", {
description = S("Japanese-style door"),
inventory_image = "homedecor_door_japanese_inv.png",
tiles = {
"homedecor_generic_wood_luxury.png",
homedecor.lux_wood,
"homedecor_japanese_paper.png"
},
mesh = "homedecor_door_japanese_closed.obj",
@ -618,7 +629,7 @@ homedecor.register("door_japanese_closed", {
homedecor.register("door_japanese_open", {
tiles = {
"homedecor_generic_wood_luxury.png",
homedecor.lux_wood,
"homedecor_japanese_paper.png"
},
mesh = "homedecor_door_japanese_open.obj",
@ -646,3 +657,6 @@ minetest.register_alias("homedecor:jpn_door_bottom", "homedecor:door_japanese_cl
minetest.register_alias("homedecor:jpn_door_top_open", "air")
minetest.register_alias("homedecor:jpn_door_bottom_open", "homedecor:door_japanese_open")
minetest.register_alias("homedecor:door_glass_right", "doors:door_glass_b")
minetest.register_alias("homedecor:door_glass_left", "doors:door_glass_a")

View File

@ -1,5 +1,8 @@
local S = homedecor_i18n.gettext
homedecor.register("power_outlet", {
description = "Power Outlet",
description = S("Power Outlet"),
tiles = {
"homedecor_outlet_edges.png",
"homedecor_outlet_edges.png",
@ -26,7 +29,7 @@ homedecor.register("power_outlet", {
})
homedecor.register("light_switch", {
description = "Light switch",
description = S("Light switch"),
tiles = {
"homedecor_light_switch_edges.png",
"homedecor_light_switch_edges.png",
@ -58,7 +61,7 @@ homedecor.register("light_switch", {
homedecor.register("doorbell", {
tiles = { "homedecor_doorbell.png" },
inventory_image = "homedecor_doorbell_inv.png",
description = "Doorbell",
description = S("Doorbell"),
groups = {snappy=3},
walkable = false,
node_box = {
@ -68,7 +71,7 @@ homedecor.register("doorbell", {
{-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", {
pos = pos,
gain = 1.0,

View File

@ -1,6 +1,6 @@
-- Various home electronics
local S = homedecor.gettext
local S = homedecor_i18n.gettext
homedecor.register("speaker", {
description = S("Large Stereo Speaker"),
@ -11,7 +11,7 @@ homedecor.register("speaker", {
},
groups = { snappy = 3 },
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})
end
})
@ -23,11 +23,11 @@ homedecor.register("speaker_open", {
"homedecor_speaker_sides.png",
"homedecor_speaker_driver.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 },
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})
end
})
@ -141,17 +141,3 @@ homedecor.register("telephone", {
walkable = false,
sounds = default.node_sound_wood_defaults(),
})
minetest.register_abm({
nodenames = "homedecor:telephone",
label = "sfx",
interval = 30,
chance = 15,
action = function(pos, node)
minetest.sound_play("homedecor_telephone_ringing", {
pos = pos,
gain = 1.0,
max_hear_distance = 5
})
end
})

View File

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

View File

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

View File

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

View File

@ -1,4 +1,5 @@
local S = homedecor.gettext
local S = homedecor_i18n.gettext
local table_colors = {
{ "", S("Table"), homedecor.plain_wood },
@ -31,16 +32,6 @@ for _, t in ipairs(table_colors) do
})
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 = {
type = "fixed",
fixed = { -0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125 },
@ -54,64 +45,72 @@ local ac_cbox = {
}
}
for _, t in ipairs(chaircolors) do
local woolcolor, colordesc = unpack(t)
local color = woolcolor
local chairtiles
if woolcolor == "" then
chairtiles = {
homedecor.plain_wood,
homedecor.plain_wood
}
else
color = "_"..woolcolor
chairtiles = {
homedecor.plain_wood,
"wool"..color..".png",
}
homedecor.register("kitchen_chair_wood", {
description = S("Kitchen chair"),
mesh = "homedecor_kitchen_chair.obj",
tiles = {
homedecor.plain_wood,
homedecor.plain_wood
},
inventory_image = "homedecor_chair_wood_inv.png",
paramtype2 = "wallmounted",
selection_box = kc_cbox,
collision_box = kc_cbox,
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
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)
pos.y = pos.y+0 -- where do I put my ass ?
homedecor.sit(pos, node, clicker)
return itemstack
end
})
homedecor.register("chair"..color, {
description = S("Kitchen chair (@1)", colordesc),
mesh = "homedecor_kitchen_chair.obj",
tiles = chairtiles,
selection_box = kc_cbox,
collision_box = kc_cbox,
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
sounds = default.node_sound_wood_defaults(),
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
})
if color ~= "" then
homedecor.register("armchair"..color, {
description = S("Armchair (@1)", colordesc),
mesh = "forniture_armchair.obj",
tiles = {
"wool"..color..".png",
"wool_dark_grey.png",
"default_wood.png"
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
node_box = ac_cbox
})
minetest.register_craft({
output = "homedecor:armchair"..color.." 2",
recipe = {
{ "wool:"..woolcolor,""},
{ "group:wood","group:wood" },
{ "wool:"..woolcolor,"wool:"..woolcolor },
},
})
homedecor.register("kitchen_chair_padded", {
description = S("Kitchen chair"),
mesh = "homedecor_kitchen_chair.obj",
tiles = {
homedecor.plain_wood,
"wool_white.png",
},
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(),
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
end,
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
end
})
homedecor.register("armchair", {
description = S("Armchair"),
mesh = "forniture_armchair.obj",
tiles = {
"wool_white.png",
{ 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)
end,
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
})
local ob_cbox = {
type = "fixed",
@ -160,3 +159,88 @@ minetest.register_alias("homedecor:armchair", "homedecor:armchair_black")
minetest.register_alias('table', 'homedecor:table')
minetest.register_alias('chair', 'homedecor:chair')
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"
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", {
description = S("Bars"),
tiles = { "homedecor_generic_metal_black.png^[transformR270" },
tiles = { { name = "homedecor_generic_metal.png^[transformR270", color = homedecor.color_black } },
node_box = {
type = "fixed",
fixed = {
@ -25,7 +25,7 @@ homedecor.register("bars", {
--L Binding Bars
homedecor.register("L_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 = {
type = "fixed",
fixed = {
@ -50,7 +50,7 @@ local chain_cbox = {
homedecor.register("chains", {
description = S("Chains"),
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",
selection_box = chain_cbox,
walkable = false,
@ -71,8 +71,8 @@ homedecor.register("torch_wall", {
length=1.0,
},
},
"homedecor_generic_metal_black.png",
"homedecor_generic_metal_black.png^[brighten",
{ name = "homedecor_generic_metal.png", color = homedecor.color_black },
{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
"forniture_coal.png",
},
inventory_image="forniture_torch_inv.png",
@ -93,8 +93,12 @@ local wl_cbox = {
homedecor.register("wall_lamp", {
description = S("Wall Lamp"),
mesh = "homedecor_wall_lamp.obj",
tiles = {"homedecor_generic_metal_black.png^[brighten", "homedecor_generic_wood_luxury.png^[colorize:#000000:30",
"homedecor_light.png", "homedecor_generic_metal_wrought_iron.png"},
tiles = {
{ 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,
inventory_image = "homedecor_wall_lamp_inv.png",
groups = {snappy=3},

View File

@ -1,8 +1,8 @@
minetest.register_craft({
output = "homedecor:table", "homedecor:chair 2",
output = "homedecor:table",
recipe = {
{ "group:wood","group:wood", "group:wood" },
{ "default:wood","default:wood", "default:wood" },
{ "group:stick", "", "group:stick" },
},
})
@ -53,7 +53,7 @@ minetest.register_craft({
})
minetest.register_craft({
output = "homedecor:chair 2",
output = "homedecor:kitchen_chair_wood 2",
recipe = {
{ "group:stick",""},
{ "group:wood","group:wood" },
@ -61,41 +61,57 @@ minetest.register_craft({
},
})
minetest.register_craft({
output = "homedecor:armchair 2",
recipe = {
{ "wool:white",""},
{ "group:wood","group:wood" },
{ "wool:white","wool:white" },
},
})
unifieddyes.register_color_craft({
output = "homedecor:armchair",
palette = "wallmounted",
type = "shapeless",
neutral_node = "homedecor:armchair",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:kitchen_chair_padded",
recipe = {
"homedecor:kitchen_chair_wood",
"wool:white",
},
})
unifieddyes.register_color_craft({
output = "homedecor:kitchen_chair_padded",
palette = "wallmounted",
type = "shapeless",
neutral_node = "homedecor:kitchen_chair_padded",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:chair",
recipe = "homedecor:kitchen_chair_wood",
burntime = 15,
})
local chaircolors = { "black", "red", "pink", "violet", "blue", "dark_green" }
for _, color in ipairs(chaircolors) do
minetest.register_craft({
type = "shapeless",
output = "homedecor:chair_"..color,
recipe = {
"homedecor:chair",
"wool:white",
"dye:"..color
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:chair_"..color,
recipe = {
"homedecor:chair",
"wool:"..color
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:chair_"..color,
burntime = 15,
})
end
minetest.register_craft({
type = "fuel",
recipe = "homedecor:kitchen_chair_padded",
burntime = 15,
})
minetest.register_craft({
type = "fuel",
@ -104,99 +120,82 @@ minetest.register_craft({
})
minetest.register_craft({
output = "homedecor:table_lamp_white_off",
output = "homedecor:standing_lamp_off",
recipe = {
{"default:paper","default:torch" ,"default:paper"},
{"","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"},
{"homedecor:table_lamp_off"},
{"group:stick"},
{"group:stick"},
},
})
unifieddyes.register_color_craft({
output = "homedecor:standing_lamp_off",
palette = "extended",
type = "shapeless",
neutral_node = "homedecor:standing_lamp_off",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table_lamp_white_off",
recipe = "homedecor:table_lamp_off",
burntime = 10,
})
local lamp_colors = { "blue", "green", "pink", "red", "violet" }
minetest.register_craft({
output = "homedecor:table_lamp_off",
recipe = {
{ "wool:white", "default:torch", "wool:white"},
{ "", "group:stick", ""},
{ "", "stairs:slab_wood", "" },
},
})
for _, color in ipairs(lamp_colors) do
minetest.register_craft({
output = "homedecor:table_lamp_off",
recipe = {
{ "cottages:wool", "default:torch", "cottages:wool"},
{ "", "group:stick", ""},
{ "", "stairs:slab_wood", "" },
},
})
minetest.register_craft({
output = "homedecor:table_lamp_"..color.."_off",
recipe = {
{"wool:"..color,"default:torch" ,"wool:"..color},
{"","group:stick",""},
{"","stairs:slab_wood",""},
},
})
minetest.register_craft({
output = "homedecor:table_lamp_off",
recipe = {
{ "wool:white", "default:torch", "wool:white"},
{ "", "group:stick", ""},
{ "", "moreblocks:slab_wood", "" },
},
})
minetest.register_craft({
output = "homedecor:table_lamp_"..color.."_off",
recipe = {
{"wool:"..color,"default:torch" ,"wool:"..color},
{"","group:stick",""},
{"","moreblocks:slab_wood",""},
},
})
minetest.register_craft({
output = "homedecor:table_lamp_off",
recipe = {
{ "cottages:wool", "default:torch", "cottages:wool"},
{ "", "group:stick", ""},
{ "", "moreblocks:slab_wood", "" },
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:table_lamp_"..color.."_off",
recipe = {
"dye:"..color,
"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"},
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:standing_lamp_"..color.."_off",
recipe = {
"homedecor:standing_lamp_off",
"dye:"..color
},
})
end
unifieddyes.register_color_craft({
output = "homedecor:table_lamp_off",
palette = "extended",
type = "shapeless",
neutral_node = "homedecor:table_lamp_off",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
minetest.register_craft({
output = "homedecor:toilet",
recipe = {
{"","","bucket:bucket_water"},
{ "","","bucket:bucket_water"},
{ "group:marble","group:marble", "group:marble" },
{ "", "bucket:bucket_empty", "" },
},
@ -206,6 +205,7 @@ minetest.register_craft({
output = "homedecor:sink",
recipe = {
{ "group:marble","bucket:bucket_empty", "group:marble" },
{ "", "group:marble", "" }
},
})
@ -226,7 +226,7 @@ minetest.register_craft({
minetest.register_craft({
output = "homedecor:shower_tray",
recipe = {
{ "group:marble","bucket:bucket_water", "group:marble" },
{ "group:marble","bucket:bucket_empty", "group:marble" },
},
})
@ -237,6 +237,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({
output = "homedecor:bars 6",
recipe = {

View File

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

View File

@ -1,4 +1,6 @@
local S = homedecor_i18n.gettext
-- vectors to place one node next to or behind another
homedecor.fdir_to_right = {
@ -22,18 +24,37 @@ homedecor.fdir_to_fwd = {
{ -1, 0 },
}
local placeholder_node = "homedecor:expansion_placeholder"
minetest.register_node(placeholder_node, {
description = "Expansion placeholder (you hacker you!)",
groups = { not_in_creative_inventory=1 },
drawtype = "airlike",
paramtype = "light",
walkable = false,
selection_box = { type = "fixed", fixed = { 0, 0, 0, 0, 0, 0 } },
is_ground_content = false,
sunlight_propagates = true,
buildable_to = false,
})
-- special case for wallmounted nodes
homedecor.wall_fdir_to_right = {
nil,
nil,
{ -1, 0 },
{ 1, 0 },
{ 0, -1 },
{ 0, 1 },
}
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
-- returns nil if no node could be selected
@ -63,7 +84,7 @@ local function is_buildable_to(placer_name, ...)
end
-- place one or two nodes if and only if both can be placed
local function stack(itemstack, placer, fdir, pos, def, pos2, node1, node2)
local function stack(itemstack, placer, fdir, pos, def, pos2, node1, node2, pointed_thing)
local placer_name = placer:get_player_name() or ""
if is_buildable_to(placer_name, pos, pos2) then
local lfdir = fdir or minetest.dir_to_facedir(placer:get_look_dir())
@ -80,28 +101,28 @@ local function stack(itemstack, placer, fdir, pos, def, pos2, node1, node2)
-- call after_place_node of the placed node if available
local ctrl_node_def = minetest.registered_nodes[node1]
if ctrl_node_def and ctrl_node_def.after_place_node then
ctrl_node_def.after_place_node(pos, placer)
ctrl_node_def.after_place_node(pos, placer, itemstack, pointed_thing)
end
if not homedecor.expect_infinite_stacks then
if not creative.is_enabled_for(placer_name) then
itemstack:take_item()
end
end
return itemstack
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)
if not node then return false end
local def = minetest.registered_nodes[node.name]
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
-- Stack one node above another
-- leave the last argument nil if it's one 2m high node
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
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 }
return stack(itemstack, placer, nil, pos, def, top_pos, node1, node2)
return stack(itemstack, placer, nil, pos, def, top_pos, node1, node2, pointed_thing)
end
-- Stack one door node above another
-- 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)
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
local pos, def = select_node(pointed_thing)
@ -131,11 +152,11 @@ function homedecor.stack_wing(itemstack, placer, pointed_thing, node1, node2, no
end
local top_pos = { x=pos.x, y=pos.y+1, z=pos.z }
return stack(itemstack, placer, fdir, pos, def, top_pos, node1, node2)
return stack(itemstack, placer, fdir, pos, def, top_pos, node1, node2, pointed_thing)
end
function homedecor.stack_sideways(itemstack, placer, pointed_thing, node1, node2, dir)
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
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] }
return stack(itemstack, placer, fdir, pos, def, pos2, node1, node2)
return stack(itemstack, placer, fdir, pos, def, pos2, node1, node2, pointed_thing)
end
function homedecor.bed_expansion(pos, placer, itemstack, pointed_thing, color)
function homedecor.bed_expansion(pos, placer, itemstack, pointed_thing, trybunks)
local thisnode = minetest.get_node(pos)
local fdir = thisnode.param2
local param2 = thisnode.param2
local fdir = param2 % 8
local fxd = homedecor.fdir_to_fwd[fdir+1][1]
local fzd = homedecor.fdir_to_fwd[fdir+1][2]
local fxd = homedecor.wall_fdir_to_fwd[fdir+1][1]
local fzd = homedecor.wall_fdir_to_fwd[fdir+1][2]
local forwardpos = {x=pos.x+fxd, y=pos.y, z=pos.z+fzd}
local forwardnode = minetest.get_node(forwardpos)
@ -164,73 +186,79 @@ function homedecor.bed_expansion(pos, placer, itemstack, pointed_thing, color)
local placer_name = placer:get_player_name()
if not (def and def.buildable_to) then
minetest.chat_send_player( placer:get_player_name(), "Not enough room - the space for the headboard is occupied!" )
minetest.chat_send_player( placer:get_player_name(),
S("Not enough room - the space for the headboard is occupied!"))
minetest.set_node(pos, {name = "air"})
return true
end
if minetest.is_protected(forwardpos, placer_name) then
minetest.chat_send_player( placer:get_player_name(), "Someone already owns the spot where the headboard goes." )
minetest.chat_send_player( placer:get_player_name(),
S("Someone already owns the spot where the headboard goes."))
return true
end
minetest.set_node(forwardpos, {name = "air"})
local lxd = homedecor.fdir_to_left[fdir+1][1]
local lzd = homedecor.fdir_to_left[fdir+1][2]
local lxd = homedecor.wall_fdir_to_left[fdir+1][1]
local lzd = homedecor.wall_fdir_to_left[fdir+1][2]
local leftpos = {x=pos.x+lxd, y=pos.y, z=pos.z+lzd}
local leftnode = minetest.get_node(leftpos)
local rxd = homedecor.fdir_to_right[fdir+1][1]
local rzd = homedecor.fdir_to_right[fdir+1][2]
local rxd = homedecor.wall_fdir_to_right[fdir+1][1]
local rzd = homedecor.wall_fdir_to_right[fdir+1][2]
local rightpos = {x=pos.x+rxd, y=pos.y, z=pos.z+rzd}
local rightnode = minetest.get_node(rightpos)
if leftnode.name == "homedecor:bed_"..color.."_regular" then
local inv = placer:get_inventory()
if leftnode.name == "homedecor:bed_regular" then
local newname = string.gsub(thisnode.name, "_regular", "_kingsize")
local meta = minetest.get_meta(pos)
local leftmeta = minetest.get_meta(leftpos)
minetest.set_node(pos, {name = "air"})
minetest.set_node(leftpos, { name = newname, param2 = fdir})
elseif rightnode.name == "homedecor:bed_"..color.."_regular" then
minetest.swap_node(leftpos, { name = newname, param2 = param2})
elseif rightnode.name == "homedecor:bed_regular" then
local newname = string.gsub(thisnode.name, "_regular", "_kingsize")
local meta = minetest.get_meta(pos)
local rightmeta = minetest.get_meta(rightpos)
minetest.set_node(rightpos, {name = "air"})
minetest.set_node(pos, { name = newname, param2 = fdir})
minetest.swap_node(pos, { name = newname, param2 = param2})
end
local topnode = 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 toppos = {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 fdir == topnode.param2 then
local newname = string.gsub(thisnode.name, "_regular", "_extended")
minetest.set_node(pos, { name = newname, param2 = fdir})
end
end
if string.find(bottomnode.name, "homedecor:bed_.*_regular$") then
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
if trybunks and is_buildable_to(placer_name, toppos, topposfwd) then
local newname = string.gsub(thisnode.name, "_regular", "_extended")
local newparam2 = param2 % 8
minetest.swap_node(toppos, { name = thisnode.name, param2 = param2})
minetest.swap_node(pos, { name = newname, param2 = param2})
itemstack:take_item()
end
end
function homedecor.unextend_bed(pos, color)
function homedecor.unextend_bed(pos)
local bottomnode = minetest.get_node({x=pos.x, y=pos.y-1.0, z=pos.z})
local fdir = bottomnode.param2
if string.find(bottomnode.name, "homedecor:bed_.*_extended$") then
local param2 = bottomnode.param2
if bottomnode.name == "homedecor:bed_extended" then
local newname = string.gsub(bottomnode.name, "_extended", "_regular")
minetest.set_node({x=pos.x, y=pos.y-1.0, z=pos.z}, { name = newname, param2 = fdir})
minetest.swap_node({x=pos.x, y=pos.y-1.0, z=pos.z}, { name = newname, param2 = param2})
end
end
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
local pos, _ = select_node(pointed_thing)
if not pos then return itemstack end
local fdir = minetest.dir_to_facedir(placer:get_look_dir())
local meta = itemstack:get_meta()
local pindex = meta:get_int("palette_index")
local abovepos = { x=pos.x, y=pos.y+1, z=pos.z }
local abovenode = minetest.get_node(abovepos)
@ -239,12 +267,12 @@ function homedecor.place_banister(itemstack, placer, pointed_thing)
local placer_name = placer:get_player_name()
if not (adef and adef.buildable_to) then
minetest.chat_send_player(placer_name, "Not enough room - the upper space is occupied!" )
minetest.chat_send_player(placer_name, S("Not enough room - the upper space is occupied!" ))
return itemstack
end
if minetest.is_protected(abovepos, placer_name) then
minetest.chat_send_player(placer_name, "Someone already owns that spot." )
minetest.chat_send_player(placer_name, S("Someone already owns that spot."))
return itemstack
end
@ -334,14 +362,6 @@ function homedecor.place_banister(itemstack, placer, pointed_thing)
fdir = right_fwd_node.param2
pos = fwd_pos
new_place_name = string.gsub(right_fwd_node.name, "_diagonal_.-$", "_horizontal")
-- try to follow a horizontal with another of the same
elseif left_node and string.find(left_node.name, "homedecor:banister_.*_horizontal") then
fdir = left_node.param2
new_place_name = left_node.name
elseif right_node and string.find(right_node.name, "homedecor:banister_.*_horizontal") then
fdir = right_node.param2
new_place_name = right_node.name
end
-- manually invert left-right orientation
@ -353,7 +373,7 @@ function homedecor.place_banister(itemstack, placer, pointed_thing)
end
end
minetest.set_node(pos, {name = new_place_name, param2 = fdir})
minetest.set_node(pos, {name = new_place_name, param2 = fdir+pindex})
itemstack:take_item()
return itemstack
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.
local S = homedecor.gettext
local S = homedecor_i18n.gettext
local function swap_node(pos, name)
local node = minetest.get_node(pos)

View File

@ -19,4 +19,6 @@ dofile(handlerpath.."registration.lua")
-- some nodes have particle spawners
dofile(handlerpath.."water_particles.lua")
dofile(handlerpath.."mt_game_beds_functions.lua")
dofile(handlerpath.."sit.lua")

View File

@ -1,4 +1,5 @@
local S = homedecor.gettext
local S = homedecor_i18n.gettext
local default_can_dig = function(pos,player)
local meta = minetest.get_meta(pos)
@ -118,7 +119,7 @@ function homedecor.handle_inventory(name, def, original_def)
local playername = player:get_player_name()
if playername == owner or
minetest.check_player_privs(player, "protection_bypass") then
minetest.check_player_privs(playername, "protection_bypass") then
return allow_move and
allow_move(pos, from_list, from_index, to_list, to_index, count, player) or
count
@ -137,7 +138,7 @@ function homedecor.handle_inventory(name, def, original_def)
local playername = player:get_player_name()
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
stack:get_count()
end
@ -155,7 +156,7 @@ function homedecor.handle_inventory(name, def, original_def)
local playername = player:get_player_name()
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
stack:get_count()
end
@ -181,7 +182,7 @@ function homedecor.handle_inventory(name, def, original_def)
minetest.register_craft({
type = "shapeless",
output = "homedecor:" .. locked_name,
recipe = { "homedecor:" .. name, "default:steel_ingot" }
recipe = { "homedecor:" .. name, "basic_materials:padlock" }
})
end

View File

@ -0,0 +1,175 @@
-- This file is a partial copy of functions.lua from minetest_game's beds mod
-- with changes needed for homedecor's beds.
local pi = math.pi
local is_sp = minetest.is_singleplayer()
local enable_respawn = minetest.settings:get_bool("enable_bed_respawn")
if enable_respawn == nil then
enable_respawn = true
end
-- Helper functions
local function get_look_yaw(pos)
local n = minetest.get_node(pos)
local fdir = n.param2 % 4
if fdir == 0 then
return pi / 2, fdir
elseif fdir == 1 then
return -pi / 2, fdir
elseif fdir == 3 then
return pi, fdir
else
return 0, fdir
end
end
local function is_night_skip_enabled()
local enable_night_skip = minetest.settings:get_bool("enable_bed_night_skip")
if enable_night_skip == nil then
enable_night_skip = true
end
return enable_night_skip
end
local function check_in_beds(players)
local in_bed = beds.player
if not players then
players = minetest.get_connected_players()
end
for n, player in ipairs(players) do
local name = player:get_player_name()
if not in_bed[name] then
return false
end
end
return #players > 0
end
local function get_player_in_bed()
local player_in_bed = 0
for k,v in pairs(beds.player) do
player_in_bed = player_in_bed + 1
end
return player_in_bed
end
local function lay_down(player, pos, bed_pos, state, skip)
local name = player:get_player_name()
local hud_flags = player:hud_get_flags()
if not player or not name then
return
end
-- stand up
if state ~= nil and not state then
local p = beds.pos[name] or nil
if beds.player[name] ~= nil then
beds.player[name] = nil
end
-- skip here to prevent sending player specific changes (used for leaving players)
if skip then
return
end
if p then
player:setpos(p)
end
-- physics, eye_offset, etc
player:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0})
player:set_look_horizontal(math.random(1, 180) / 100)
default.player_attached[name] = false
player:set_physics_override(1, 1, 1)
hud_flags.wielditem = true
default.player_set_animation(player, "stand" , 30)
-- lay down
else
beds.player[name] = 1
beds.pos[name] = pos
-- physics, eye_offset, etc
player:set_eye_offset({x = 0, y = -13, z = 0}, {x = 0, y = 0, z = 0})
local yaw, fdir = get_look_yaw(bed_pos)
player:set_look_horizontal(yaw)
local offsets = {
[0] = {0.5, 0},
[1] = {-0.5, 0},
[2] = {0, -0.5},
[3] = {0, 0.5}
}
local p = {x = bed_pos.x + offsets[fdir][1], y = bed_pos.y, z = bed_pos.z + offsets[fdir][2]}
player:set_physics_override(0, 0, 0)
player:setpos(p)
default.player_attached[name] = true
hud_flags.wielditem = false
default.player_set_animation(player, "lay" , 0)
end
player:hud_set_flags(hud_flags)
end
local function update_formspecs(finished)
local ges = #minetest.get_connected_players()
local player_in_bed = get_player_in_bed()
local form_n
local is_majority = (ges / 2) < player_in_bed
if finished then
form_n = beds.formspec .. "label[2.7,11; Good morning.]"
else
form_n = beds.formspec .. "label[2.2,11;" .. tostring(player_in_bed) ..
" of " .. tostring(ges) .. " players are in bed]"
if is_majority and is_night_skip_enabled() then
form_n = form_n .. "button_exit[2,8;4,0.75;force;Force night skip]"
end
end
for name,_ in pairs(beds.player) do
minetest.show_formspec(name, "beds_form", form_n)
end
end
-- Public functions
function homedecor.beds_on_rightclick(pos, node, player)
local name = player:get_player_name()
local ppos = player:getpos()
local tod = minetest.get_timeofday()
if tod > 0.2 and tod < 0.805 then
if beds.player[name] then
lay_down(player, nil, nil, false)
end
minetest.chat_send_player(name, "You can only sleep at night.")
return
end
-- move to bed
if not beds.player[name] then
lay_down(player, ppos, pos)
beds.set_spawns() -- save respawn positions when entering bed
else
lay_down(player, nil, nil, false)
end
if not is_sp then
update_formspecs(false)
end
-- skip the night and let all players stand up
if check_in_beds() then
minetest.after(2, function()
if not is_sp then
update_formspecs(is_night_skip_enabled())
end
if is_night_skip_enabled() then
beds.skip_night()
beds.kick_players()
end
end)
end
end

View File

@ -30,8 +30,8 @@ function homedecor.start_particle_spawner(pos, node, particledef, soundname)
end, s_handle)
end
minetest.delete_particlespawner(id)
this_spawner_meta:set_int("active", nil)
this_spawner_meta:set_int("sound", nil)
this_spawner_meta:set_int("active", 0)
this_spawner_meta:set_int("sound", 0)
return
end
@ -109,6 +109,6 @@ function homedecor.stop_particle_spawner(pos)
end, s_handle)
end
this_spawner_meta:set_int("active", nil)
this_spawner_meta:set_int("sound", nil)
this_spawner_meta:set_int("active", 0)
this_spawner_meta:set_int("sound", 0)
end

View File

@ -9,18 +9,10 @@
local modpath = minetest.get_modpath("homedecor")
-- Load support for intllib.
local S, NS = dofile(modpath.."/intllib.lua")
local S = homedecor_i18n.gettext
homedecor = {
modpath = modpath,
gettext = S,
ngettext = NS,
-- infinite stacks
expect_infinite_stacks = minetest.setting_getbool("creative_mode") and not minetest.get_modpath("unified_inventory")
}
homedecor = {}
homedecor.modpath = modpath
-- Determine if the item being pointed at is the underside of a node (e.g a ceiling)
function homedecor.find_ceiling(itemstack, placer, pointed_thing)
@ -67,18 +59,15 @@ end
screwdriver = screwdriver or {}
homedecor.plain_wood = "homedecor_generic_wood_plain.png^"..
"(homedecor_generic_wood_boards_overlay.png^[colorize:#a7682020:100)"
homedecor.mahogany_wood = "(homedecor_generic_wood_plain.png^[colorize:#401010:125)^"..
"(homedecor_generic_wood_boards_overlay.png^[colorize:#66493880:200)"
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.plain_wood = { name = "homedecor_generic_wood_plain.png", color = 0xffa76820 }
homedecor.mahogany_wood = { name = "homedecor_generic_wood_plain.png", color = 0xff7d2506 }
homedecor.white_wood = "homedecor_generic_wood_plain.png"
homedecor.dark_wood = { name = "homedecor_generic_wood_plain.png", color = 0xff39240f }
homedecor.lux_wood = { name = "homedecor_generic_wood_luxury.png", color = 0xff643f23 }
homedecor.color_black = 0xff303030
homedecor.color_dark_grey = 0xff606060
homedecor.color_med_grey = 0xffa0a0a0
-- load different handler subsystems
dofile(modpath.."/handlers/init.lua")
@ -130,4 +119,6 @@ dofile(modpath.."/wardrobe.lua")
dofile(modpath.."/crafts.lua")
print("[HomeDecor] " .. S("Loaded!"))
if minetest.settings:get_bool("log_mod") then
minetest.log("action", "[HomeDecor] " .. S("Loaded!"))
end

View File

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

View File

@ -1,6 +1,6 @@
-- 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_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", {
description = "Copper pans",
description = S("Copper pans"),
mesh = "homedecor_copper_pans.obj",
tiles = { "homedecor_polished_copper.png" },
inventory_image = "homedecor_copper_pans_inv.png",
@ -115,7 +115,7 @@ homedecor.register("kitchen_faucet", {
mesh = "homedecor_kitchen_faucet.obj",
tiles = { "homedecor_generic_metal_bright.png" },
inventory_image = "homedecor_kitchen_faucet_inv.png",
description = "Kitchen Faucet",
description = S("Kitchen Faucet"),
groups = {snappy=3},
selection_box = kf_cbox,
walkable = false,

View File

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

View File

@ -1,64 +1,6 @@
-- This file supplies glowlights
local dirs2 = { 9, 18, 7, 12 }
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 S = homedecor_i18n.gettext
local glowlight_nodebox = {
half = homedecor.nodebox.slab_y(1/2),
@ -69,69 +11,126 @@ local glowlight_nodebox = {
},
}
homedecor.register("glowlight_half_"..color, {
description = S("Thick Glowlight (@1)", S(color)),
minetest.register_node("homedecor:glowlight_half", {
description = S("Thick Glowlight"),
tiles = {
"homedecor_glowlight_"..color.."_top.png",
"homedecor_glowlight_"..color.."_bottom.png",
"homedecor_glowlight_thick_"..color.."_sides.png",
"homedecor_glowlight_thick_"..color.."_sides.png",
"homedecor_glowlight_thick_"..color.."_sides.png",
"homedecor_glowlight_thick_"..color.."_sides.png"
"homedecor_glowlight_top.png",
"homedecor_glowlight_bottom.png",
"homedecor_glowlight_thick_sides.png",
"homedecor_glowlight_thick_sides.png",
"homedecor_glowlight_thick_sides.png",
"homedecor_glowlight_thick_sides.png"
},
overlay_tiles = {
{ name = "homedecor_glowlight_top_overlay.png", color = "white"},
"",
{ name = "homedecor_glowlight_thick_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_thick_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_thick_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_thick_sides_overlay.png", color = "white"},
},
use_texture_alpha = true,
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "colorwallmounted",
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,
groups = { snappy = 3 },
groups = { snappy = 3, ud_param2_colorable = 1 },
light_source = default.LIGHT_MAX,
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)
end,
})
homedecor.register("glowlight_quarter_"..color, {
description = S("Thin Glowlight (@1)", S(color)),
minetest.register_node("homedecor:glowlight_quarter", {
description = S("Thin Glowlight"),
tiles = {
"homedecor_glowlight_"..color.."_top.png",
"homedecor_glowlight_"..color.."_bottom.png",
"homedecor_glowlight_thin_"..color.."_sides.png",
"homedecor_glowlight_thin_"..color.."_sides.png",
"homedecor_glowlight_thin_"..color.."_sides.png",
"homedecor_glowlight_thin_"..color.."_sides.png"
"homedecor_glowlight_top.png",
"homedecor_glowlight_bottom.png",
"homedecor_glowlight_thin_sides.png",
"homedecor_glowlight_thin_sides.png",
"homedecor_glowlight_thin_sides.png",
"homedecor_glowlight_thin_sides.png"
},
overlay_tiles = {
{ name = "homedecor_glowlight_top_overlay.png", color = "white"},
"",
{ name = "homedecor_glowlight_thin_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_thin_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_thin_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_thin_sides_overlay.png", color = "white"},
},
use_texture_alpha = true,
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "colorwallmounted",
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,
groups = { snappy = 3 },
groups = { snappy = 3, ud_param2_colorable = 1 },
light_source = default.LIGHT_MAX-1,
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)
end,
})
-- Glowlight "cubes"
homedecor.register("glowlight_small_cube_"..color, {
description = S("Small Glowlight Cube (@1)", S(color)),
minetest.register_node("homedecor:glowlight_small_cube", {
description = S("Small Glowlight Cube"),
tiles = {
"homedecor_glowlight_cube_"..color.."_tb.png",
"homedecor_glowlight_cube_"..color.."_tb.png",
"homedecor_glowlight_cube_"..color.."_sides.png",
"homedecor_glowlight_cube_"..color.."_sides.png",
"homedecor_glowlight_cube_"..color.."_sides.png",
"homedecor_glowlight_cube_"..color.."_sides.png"
"homedecor_glowlight_cube_tb.png",
"homedecor_glowlight_cube_tb.png",
"homedecor_glowlight_cube_sides.png",
"homedecor_glowlight_cube_sides.png",
"homedecor_glowlight_cube_sides.png",
"homedecor_glowlight_cube_sides.png"
},
overlay_tiles = {
{ name = "homedecor_glowlight_cube_tb_overlay.png", color = "white"},
{ name = "homedecor_glowlight_cube_tb_overlay.png", color = "white"},
{ name = "homedecor_glowlight_cube_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_cube_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_cube_sides_overlay.png", color = "white"},
{ name = "homedecor_glowlight_cube_sides_overlay.png", color = "white"},
},
use_texture_alpha = true,
paramtype = "light",
paramtype2 = "colorwallmounted",
drawtype = "nodebox",
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,
groups = { snappy = 3 },
groups = { snappy = 3, ud_param2_colorable = 1 },
light_source = default.LIGHT_MAX-1,
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)
end,
})
end
homedecor.register("plasma_lamp", {
description = S("Plasma Lamp"),
drawtype = "glasslike_framed",
tiles = {"default_gold_block.png","homedecor_glass_face_clean.png"},
special_tiles = {
drawtype = "mesh",
mesh = "plasma_lamp.obj",
tiles = {
"default_gold_block.png",
{
name="homedecor_plasma_storm.png",
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0},
@ -142,16 +141,13 @@ homedecor.register("plasma_lamp", {
sunlight_propagates = true,
groups = {cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
after_place_node = function(pos, placer, itemstack, pointed_thing)
minetest.swap_node(pos, {name = "homedecor:plasma_lamp", param2 = 255})
end
})
homedecor.register("plasma_ball", {
description = S("Plasma Ball"),
mesh = "homedecor_plasma_ball.obj",
tiles = {
"homedecor_generic_plastic_black.png",
{ name = "homedecor_generic_plastic.png", color = homedecor.color_black },
{
name = "homedecor_plasma_ball_streamers.png",
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0},
@ -281,10 +277,10 @@ homedecor.register("oil_lamp", {
mesh = "homedecor_oil_lamp.obj",
tiles = {
"homedecor_generic_metal_brass.png",
"homedecor_generic_metal_black.png",
"homedecor_generic_metal_black.png^[colorize:#ff0000:160",
{ name = "homedecor_generic_metal.png", color = homedecor.color_black },
{ name = "homedecor_generic_metal.png", color = 0xffa00000 },
"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",
},
use_texture_alpha = true,
@ -357,20 +353,27 @@ homedecor.register("ceiling_lantern", {
tiles = { "homedecor_light.png", "homedecor_generic_metal_wrought_iron.png" },
use_texture_alpha = true,
inventory_image = "homedecor_ceiling_lantern_inv.png",
description = "Ceiling Lantern",
description = S("Ceiling Lantern"),
groups = {snappy=3},
light_source = 11,
selection_box = cl_cbox,
walkable = false
})
homedecor.register("lattice_lantern_large", {
description = S("Lattice lantern (large)"),
tiles = { 'homedecor_lattice_lantern_large.png' },
groups = { snappy = 3 },
light_source = default.LIGHT_MAX,
sounds = default.node_sound_glass_defaults(),
})
local sm_light = default.LIGHT_MAX-2
if minetest.get_modpath("darkage") then
minetest.register_alias("homedecor:lattice_lantern_large", "darkage:lamp")
sm_light = default.LIGHT_MAX-5
else
homedecor.register("lattice_lantern_large", {
description = S("Lattice lantern (large)"),
tiles = { 'homedecor_lattice_lantern_large.png' },
groups = { snappy = 3 },
light_source = default.LIGHT_MAX,
sounds = default.node_sound_glass_defaults(),
})
end
homedecor.register("lattice_lantern_small", {
description = S("Lattice lantern (small)"),
@ -388,20 +391,36 @@ homedecor.register("lattice_lantern_small", {
fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 }
},
groups = { snappy = 3 },
light_source = default.LIGHT_MAX-1,
light_source = sm_light,
sounds = default.node_sound_glass_defaults(),
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 = {
{ N_("white"), "#ffffffe0:175" },
{ N_("blue"), "#2626c6e0:200" },
{ N_("green"), "#27a927e0:200" },
{ N_("pink"), "#ff8fb7e0:200" },
{ N_("red"), "#ad2323e0:200" },
{ N_("violet"), "#7f29d7e0:200" },
"white",
"blue",
"green",
"pink",
"red",
"violet",
}
local tlamp_cbox = {
@ -414,105 +433,118 @@ local slamp_cbox = {
fixed = { -0.25, -0.5, -0.25, 0.25, 1.5, 0.25 }
}
local function reg_lamp(suffix, nxt, tilesuffix, light, color)
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
local function reg_lamp(suffix, nxt, light, brightness)
homedecor.register("table_lamp"..lampcolor.."_"..suffix, {
description = S("Table Lamp (@1)", colordesc),
local wool_brighten = (light or 0) * 15
homedecor.register("table_lamp_"..suffix, {
description = S("Table Lamp"),
mesh = "homedecor_table_lamp.obj",
tiles = {
"wool_"..woolcolor..".png^[colorize:#ffffff:"..wool_brighten,
"homedecor_table_standing_lamp_lightbulb.png^[colorize:#ffffff:"..bulb_brighten,
"homedecor_generic_wood_red.png",
"homedecor_generic_metal_black.png^[brighten",
"wool_grey.png^[colorize:#ffffff:"..wool_brighten,
{ name = "homedecor_table_standing_lamp_lightbulb.png", color = brightness_tab[brightness] },
{ name = "homedecor_generic_wood_red.png", color = 0xffffffff },
{ 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",
walkable = false,
light_source = light,
selection_box = tlamp_cbox,
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,
},
drop = "homedecor:table_lamp"..lampcolor.."_off",
on_punch = function(pos, node, puncher)
node.name = "homedecor:table_lamp"..lampcolor.."_"..repl[suffix]
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "homedecor:table_lamp_"..repl[suffix]
minetest.set_node(pos, node)
end,
on_construct = unifieddyes.on_construct,
drop = {
items = {
{items = {"homedecor:table_lamp_off"}, inherit_color = true },
}
}
})
-- standing lamps
homedecor.register("standing_lamp"..lampcolor.."_"..suffix, {
description = S("Standing Lamp (@1)", colordesc),
homedecor.register("standing_lamp_"..suffix, {
description = S("Standing Lamp"),
mesh = "homedecor_standing_lamp.obj",
tiles = {
"wool_"..woolcolor..".png^[colorize:#ffffff:"..wool_brighten,
"homedecor_table_standing_lamp_lightbulb.png^[colorize:#ffffff:"..bulb_brighten,
"homedecor_generic_wood_red.png",
"homedecor_generic_metal_black.png^[brighten",
"wool_grey.png^[colorize:#ffffff:"..wool_brighten,
{ name = "homedecor_table_standing_lamp_lightbulb.png", color = brightness_tab[brightness] },
{ name = "homedecor_generic_wood_red.png", color = 0xffffffff },
{ 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",
walkable = false,
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,
},
selection_box = slamp_cbox,
sounds = default.node_sound_wood_defaults(),
on_rotate = screwdriver.rotate_simple,
on_punch = function(pos, node, puncher)
node.name = "homedecor:standing_lamp"..lampcolor.."_"..repl[suffix]
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "homedecor:standing_lamp_"..repl[suffix]
minetest.set_node(pos, node)
end,
expand = { top="placeholder" },
on_construct = unifieddyes.on_construct,
--expand = { top="air" },
drop = {
items = {
{items = {"homedecor:standing_lamp_off"}, inherit_color = true },
}
}
})
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
if lampcolor == "" then
minetest.register_alias("3dforniture:table_lamp_"..suffix, "homedecor:table_lamp_"..suffix)
end
minetest.register_alias("3dforniture:table_lamp_"..suffix, "homedecor:table_lamp_"..suffix)
end
for _, color in ipairs(lamp_colors) do
reg_lamp("off", "low", "", nil, color )
reg_lamp("low", "med", "l", 3, color )
reg_lamp("med", "hi", "m", 7, color )
reg_lamp("hi", "max", "h", 11, color )
reg_lamp("max", "off", "x", 14, color )
end
reg_lamp("off", "low", nil, 1 )
reg_lamp("low", "med", 3, 2 )
reg_lamp("med", "hi", 7, 3 )
reg_lamp("hi", "max", 11, 4 )
reg_lamp("max", "off", 14, 5 )
-- "gooseneck" style desk lamps
local dlamp_cbox = {
type = "fixed",
fixed = { -0.2, -0.5, -0.15, 0.32, 0.12, 0.15 },
type = "wallmounted",
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"),
mesh = "homedecor_desk_lamp.obj",
tiles = {
"homedecor_generic_metal.png",
"homedecor_generic_metal.png",
{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
{ name = "homedecor_table_standing_lamp_lightbulb.png", color = brightness_tab[5] },
},
inventory_image = "homedecor_desk_lamp_inv.png",
paramtype = "light",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = dlamp_cbox,
node_box = dlamp_cbox,
walkable = false,
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)
end,
on_rotate = unifieddyes.fix_after_screwdriver_nsew
})
for _, color in ipairs(dlamp_colors) do
homedecor.register("desk_lamp_"..color, {
description = S("Desk Lamp (@1)", S(color)),
mesh = "homedecor_desk_lamp.obj",
tiles = {
"homedecor_table_standing_lamp_lightbulb.png^[colorize:#ffffff:200",
"homedecor_generic_metal_black.png^[colorize:"..color..":150",
"homedecor_generic_metal_black.png",
"homedecor_generic_metal_black.png^[colorize:"..color..":150"
},
inventory_image = "homedecor_desk_lamp_stem_inv.png^(homedecor_desk_lamp_metal_inv.png^[colorize:"..color..":140)",
selection_box = dlamp_cbox,
walkable = false,
groups = {snappy=3},
})
end
-- "kitchen"/"dining room" ceiling lamp
homedecor.register("ceiling_lamp", {
description = S("Ceiling Lamp"),
@ -520,14 +552,14 @@ homedecor.register("ceiling_lamp", {
tiles = {
"homedecor_generic_metal_brass.png",
"homedecor_ceiling_lamp_glass.png",
"homedecor_table_standing_lamp_lightbulb.png^[colorize:#ffffff:200",
"homedecor_generic_plastic_black.png^[colorize:#442d04:200",
"homedecor_table_standing_lamp_lightbulb.png",
{ name = "homedecor_generic_plastic.png", color = 0xff442d04 },
},
inventory_image = "homedecor_ceiling_lamp_inv.png",
light_source = default.LIGHT_MAX,
groups = {snappy=3},
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"})
end,
})
@ -538,13 +570,313 @@ homedecor.register("ceiling_lamp_off", {
tiles = {
"homedecor_generic_metal_brass.png",
"homedecor_ceiling_lamp_glass.png",
"homedecor_table_standing_lamp_lightbulb.png",
"homedecor_generic_plastic_black.png^[colorize:#442d04:200",
{ "homedecor_table_standing_lamp_lightbulb.png", color = 0xffd0d0d0 },
{ name = "homedecor_generic_plastic.png", color = 0xff442d04 },
},
groups = {snappy=3, not_in_creative_inventory=1},
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"})
end,
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
})
local chains_sbox = {
type = "fixed",
fixed = { -0.1, -0.5, -0.1, 0.1, 0.5, 0.1 }
}
local topchains_sbox = {
type = "fixed",
fixed = {
{ -0.25, 0.35, -0.25, 0.25, 0.5, 0.25 },
{ -0.1, -0.5, -0.1, 0.1, 0.4, 0.1 }
}
}
minetest.register_node("homedecor:chain_steel_top", {
description = S("Hanging chain (ceiling mount, steel)"),
drawtype = "mesh",
mesh = "homedecor_chains_top.obj",
tiles = {"basic_materials_chain_steel.png"},
walkable = false,
climbable = true,
sunlight_propagates = true,
paramtype = "light",
inventory_image = "basic_materials_chain_steel_inv.png",
groups = {cracky=3},
selection_box = topchains_sbox,
})
minetest.register_node("homedecor:chain_brass_top", {
description = S("Hanging chain (ceiling mount, brass)"),
drawtype = "mesh",
mesh = "homedecor_chains_top.obj",
tiles = {"basic_materials_chain_brass.png"},
walkable = false,
climbable = true,
sunlight_propagates = true,
paramtype = "light",
inventory_image = "basic_materials_chain_brass_inv.png",
groups = {cracky=3},
selection_box = topchains_sbox,
})
minetest.register_node("homedecor:chandelier_steel", {
description = S("Chandelier (steel)"),
paramtype = "light",
light_source = 12,
walkable = false,
climbable = true,
sunlight_propagates = true,
tiles = {
"basic_materials_chain_steel.png",
"homedecor_candle_flat.png",
{
name="homedecor_candle_flame.png",
animation={
type="vertical_frames",
aspect_w=16,
aspect_h=16,
length=3.0
}
}
},
drawtype = "mesh",
mesh = "homedecor_chandelier.obj",
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("homedecor:chandelier_brass", {
description = S("Chandelier (brass)"),
paramtype = "light",
light_source = 12,
walkable = false,
climbable = true,
sunlight_propagates = true,
tiles = {
"basic_materials_chain_brass.png",
"homedecor_candle_flat.png",
{
name="homedecor_candle_flame.png",
animation={
type="vertical_frames",
aspect_w=16,
aspect_h=16,
length=3.0
}
}
},
drawtype = "mesh",
mesh = "homedecor_chandelier.obj",
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
-- crafts
minetest.register_craft({
output = 'homedecor:chain_steel_top',
recipe = {
{'default:steel_ingot'},
{'basic_materials:chainlink_steel'},
},
})
minetest.register_craft({
output = 'homedecor:chandelier_steel',
recipe = {
{'', 'basic_materials:chainlink_steel', ''},
{'default:torch', 'basic_materials:chainlink_steel', 'default:torch'},
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
}
})
-- brass versions
minetest.register_craft({
output = 'homedecor:chain_brass_top',
recipe = {
{'basic_materials:brass_ingot'},
{'basic_materials:chainlink_brass'},
},
})
minetest.register_craft({
output = 'homedecor:chandelier_brass',
recipe = {
{'', 'basic_materials:chainlink_brass', ''},
{'default:torch', 'basic_materials:chainlink_brass', 'default:torch'},
{'basic_materials:brass_ingot', 'basic_materials:brass_ingot', 'basic_materials:brass_ingot'},
}
})
minetest.register_alias("chains:chain_top", "homedecor:chain_steel_top")
minetest.register_alias("chains:chain_top_brass", "homedecor:chain_brass_top")
minetest.register_alias("chains:chandelier_steel", "homedecor:chandelier_steel")
minetest.register_alias("chains:chandelier_brass", "homedecor:chandelier_brass")

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
@ -74,7 +74,7 @@ homedecor.register("flower_pot_"..p, {
mesh = "homedecor_flowerpot.obj",
tiles = {
"homedecor_flower_pot_"..p..".png",
"default_dirt.png^[colorize:#000000:175"
{ name = "default_dirt.png", color = 0xff505050 },
},
groups = { snappy = 3, potting_soil=1 },
sounds = default.node_sound_stone_defaults(),
@ -100,7 +100,7 @@ for _, f in ipairs(flowers_list) do
mesh = "homedecor_potted_plant.obj",
tiles = {
"homedecor_flower_pot_terracotta.png",
"default_dirt.png^[colorize:#000000:175",
{ name = "default_dirt.png", color = 0xff303030 },
"flowers_"..flower..".png"
},
walkable = false,
@ -167,7 +167,7 @@ homedecor.register("fishtank", {
description = S("Fishtank"),
mesh = "homedecor_fishtank.obj",
tiles = {
"homedecor_generic_plastic_black.png",
{ name = "homedecor_generic_plastic.png", color = homedecor.color_black },
"homedecor_fishtank_filter.png",
"homedecor_fishtank_fishes.png",
"homedecor_fishtank_gravel.png",
@ -189,7 +189,7 @@ homedecor.register("fishtank_lighted", {
description = S("Fishtank (lighted)"),
mesh = "homedecor_fishtank.obj",
tiles = {
"homedecor_generic_plastic_black.png",
{ name = "homedecor_generic_plastic.png", color = homedecor.color_black },
"homedecor_fishtank_filter.png",
"homedecor_fishtank_fishes_lighted.png",
"homedecor_fishtank_gravel_lighted.png",
@ -268,7 +268,7 @@ homedecor.register("pool_table", {
"homedecor_pool_table_baize.png",
"homedecor_pool_table_pockets.png",
"homedecor_pool_table_balls.png",
"homedecor_generic_wood_luxury.png^[colorize:#000000:90"
homedecor.lux_wood,
},
description = S("Pool Table"),
inventory_image = "homedecor_pool_table_inv.png",
@ -290,7 +290,7 @@ local piano_cbox = {
homedecor.register("piano", {
mesh = "homedecor_piano.obj",
tiles = {
"homedecor_generic_wood_luxury.png^[colorize:#000000:175",
{ name = "homedecor_generic_wood_luxury.png", color = homedecor.color_black },
"homedecor_piano_keys.png",
"homedecor_generic_metal_brass.png",
},
@ -336,7 +336,7 @@ homedecor.register("sportbench", {
tiles = {
"homedecor_generic_metal_wrought_iron.png",
"homedecor_generic_metal_bright.png",
"homedecor_generic_metal_black.png",
{ name = "homedecor_generic_metal.png", color = homedecor.color_black },
"wool_black.png"
},
inventory_image = "homedecor_sport_bench_inv.png",
@ -368,10 +368,10 @@ homedecor.register("tool_cabinet", {
description = S("Metal tool cabinet and work table"),
mesh = "homedecor_tool_cabinet.obj",
tiles = {
"homedecor_generic_metal_black.png^[colorize:#ff0000:150",
{ name = "homedecor_generic_metal.png", color = 0xffd00000 },
"homedecor_tool_cabinet_drawers.png",
"homedecor_generic_metal_black.png^[colorize:#006000:150",
"homedecor_generic_metal_black.png^[brighten",
{ name = "homedecor_generic_metal.png", color = 0xff006000 },
{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
"homedecor_generic_metal_bright.png",
"homedecor_tool_cabinet_misc.png",
},
@ -396,11 +396,11 @@ local n = { 1, 2 }
for _, i in ipairs(n) do
homedecor.register("picture_frame"..i, {
description = S("Picture Frame"),
description = S("Picture Frame "..i),
mesh = "homedecor_picture_frame.obj",
tiles = {
"homedecor_picture_frame_image"..i..".png",
"homedecor_generic_wood_luxury.png^[colorize:#000000:50",
homedecor.lux_wood,
"homedecor_picture_frame_back.png",
},
inventory_image = "homedecor_picture_frame"..i.."_inv.png",
@ -483,23 +483,19 @@ for _, side in ipairs({"diagonal_left", "diagonal_right", "horizontal"}) do
local name, matdesc, tile1, tile2 = unpack(mat)
local nodename = "banister_"..name.."_"..side
local groups = { snappy = 3, not_in_creative_inventory = 1 }
local cbox = {
type = "fixed",
fixed = { -9/16, -3/16, 5/16, 9/16, 24/16, 8/16 }
}
if side == "horizontal" then
groups = { snappy = 3 }
cbox = {
type = "fixed",
fixed = { -8/16, -8/16, 5/16, 8/16, 8/16, 8/16 }
}
else
minetest.register_alias(string.gsub("homedecor:"..nodename, "diagonal_", ""), "homedecor:"..nodename)
end
homedecor.register(nodename, {
local def = {
description = S("Banister for Stairs (@1, @2)", matdesc, sidedesc),
mesh = "homedecor_banister_"..side..".obj",
tiles = {
@ -507,12 +503,37 @@ for _, side in ipairs({"diagonal_left", "diagonal_right", "horizontal"}) do
tile2,
},
inventory_image = "homedecor_banister_"..name.."_inv.png",
groups = groups,
selection_box = cbox,
collision_box = cbox,
groups = { snappy = 3},
on_place = homedecor.place_banister,
drop = "homedecor:banister_"..name.."_horizontal",
})
}
if side ~= "horizontal" then
def.groups.not_in_creative_inventory = 1
end
if name == "wood" then
def.palette = "unifieddyes_palette_greys.png"
def.airbrush_replacement_node = "homedecor:banister_wood_"..side.."_grey"
def.groups.ud_param2_colorable = 1
def.paramtype2 = "colorfacedir"
end
homedecor.register(nodename, def)
if name == "wood" then
local nn = "homedecor:"..nodename
local def2 = table.copy(minetest.registered_items[nn])
def2.tiles = {
homedecor.white_wood,
homedecor.white_wood
}
def2.inventory_image = "homedecor_banister_wood_colored_inv.png"
def2.groups.not_in_creative_inventory = 1
unifieddyes.generate_split_palette_nodes(nn, def2, "homedecor:banister_"..name.."_horizontal")
end
end
end

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
o chair_Cylinder
v 0.375000 -0.437500 -0.500000
v 0.375000 0.039062 -0.500000
v 0.375000 0.101562 -0.437500
v 0.375000 0.101562 0.035156
v 0.375000 0.437500 0.035156
v 0.375000 0.500000 0.097656
v -0.375000 0.500000 0.375000
v 0.312500 -0.187500 -0.375000
v -0.375000 0.500000 0.097656
v -0.375000 0.437500 0.035156
v -0.312500 -0.187500 -0.375000
v -0.375000 0.101562 0.035156
v -0.375000 0.101562 -0.437500
v -0.375000 0.039062 -0.500000
v 0.375000 0.500000 0.375000
v -0.375000 -0.437500 -0.500000
v -0.437500 -0.437500 -0.500000
v -0.500000 -0.437500 -0.375000
v -0.500000 0.437500 0.097656
v -0.437500 0.039062 -0.500000
v 0.437500 0.500000 0.437500
v -0.437500 0.101562 -0.437500
v 0.437500 0.500000 0.097656
v -0.437500 0.101562 0.035156
v 0.437500 0.437500 0.035156
v -0.437500 0.437500 0.035156
v 0.437500 0.101562 0.035156
v -0.437500 0.500000 0.097656
v 0.437500 0.101562 -0.437500
v -0.437500 0.500000 0.437500
v 0.437500 0.039062 -0.500000
v 0.500000 0.437500 0.097656
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.375000 -0.437500
v 0.500000 -0.375000 0.039062
v 0.437500 -0.375000 0.101562
v -0.035156 -0.375000 0.101562
v -0.035156 -0.375000 0.437500
v -0.097656 -0.375000 0.500000
v -0.375000 0.375000 0.500000
v 0.375000 -0.312500 -0.187500
v -0.097656 0.375000 0.500000
v -0.035156 0.375000 0.437500
v 0.375000 0.312500 -0.187500
v -0.035156 0.375000 0.101562
v 0.437500 0.375000 0.101562
v 0.500000 0.375000 0.039062
v -0.375000 -0.375000 0.500000
v 0.500000 0.375000 -0.437500
v 0.500000 0.437500 -0.437500
v 0.375000 0.500000 -0.437500
v -0.097656 0.500000 0.437500
v 0.500000 0.437500 0.039062
v -0.437500 -0.437500 0.500000
v 0.437500 0.437500 0.101562
v -0.097656 -0.437500 0.500000
v -0.035156 0.437500 0.101562
v -0.035156 -0.437500 0.437500
v -0.035156 0.437500 0.437500
v -0.035156 -0.437500 0.101562
v -0.097656 0.437500 0.500000
v 0.437500 -0.437500 0.101562
v -0.437500 0.437500 0.500000
v 0.500000 -0.437500 0.039062
v -0.097656 -0.500000 0.437500
v 0.500000 -0.437500 -0.437500
v 0.312500 0.437500 0.097656
v 0.312500 0.039062 0.097656
v 0.312500 0.039062 -0.437500
v 0.312500 -0.437500 -0.437500
v -0.312500 0.437500 0.097656
v 0.500000 -0.437500 -0.375000
v -0.312500 0.039062 0.097656
v -0.312500 0.039062 -0.437500
v -0.312500 -0.437500 -0.437500
v 0.312500 -0.125000 0.312500
v -0.312500 -0.125000 0.312500
v 0.312500 0.437500 0.312500
v -0.312500 0.437500 0.312500
v 0.312500 -0.109375 -0.187500
v -0.312500 -0.109375 -0.187500
v 0.312500 0.156250 0.285156
v -0.312500 0.156250 0.285156
v 0.312500 -0.125000 -0.312500
v -0.312500 -0.109375 0.250000
v 0.312500 -0.062500 0.296875
v -0.312500 0.375000 0.296875
v 0.312500 -0.109375 0.250000
v -0.312500 -0.125000 -0.312500
v 0.312500 0.375000 0.296875
v -0.312500 -0.062500 0.296875
v 0.312500 -0.101562 0.031250
v -0.312500 -0.101562 0.031250
v -0.432138 -0.500000 0.343750
v -0.432138 -0.437500 0.343750
v -0.380362 -0.500000 0.343750
v -0.380362 -0.437500 0.343750
v -0.343750 -0.500000 0.380362
v -0.343750 -0.437500 0.380362
v -0.343750 -0.500000 0.432138
v -0.343750 -0.437500 0.432138
v -0.380362 -0.500000 0.468750
v -0.380362 -0.437500 0.468750
v -0.432138 -0.500000 0.468750
v -0.432138 -0.437500 0.468750
v -0.468750 -0.500000 0.432138
v -0.468750 -0.437500 0.432138
v -0.468750 -0.500000 0.380362
v -0.468750 -0.437500 0.380362
v 0.343750 -0.437500 0.380362
v 0.343750 -0.500000 0.380362
v 0.343750 -0.437500 0.432138
v 0.343750 -0.500000 0.432138
v 0.380362 -0.437500 0.468750
v 0.380362 -0.500000 0.468750
v 0.432138 -0.437500 0.468750
v 0.432138 -0.500000 0.468750
v 0.468750 -0.437500 0.432138
v 0.468750 -0.500000 0.432138
v 0.468750 -0.437500 0.380362
v 0.468750 -0.500000 0.380362
v 0.432138 -0.437500 0.343750
v 0.432138 -0.500000 0.343750
v 0.380362 -0.437500 0.343750
v 0.380362 -0.500000 0.343750
v -0.432138 -0.500000 -0.468750
v -0.432138 -0.437500 -0.468750
v -0.380362 -0.500000 -0.468750
v -0.380362 -0.437500 -0.468750
v -0.343750 -0.500000 -0.432138
v -0.343750 -0.437500 -0.432138
v -0.343750 -0.500000 -0.380362
v -0.343750 -0.437500 -0.380362
v -0.380362 -0.500000 -0.343750
v -0.380362 -0.437500 -0.343750
v -0.432138 -0.500000 -0.343750
v -0.432138 -0.437500 -0.343750
v -0.468750 -0.500000 -0.380362
v -0.468750 -0.437500 -0.380362
v -0.468750 -0.500000 -0.432138
v -0.468750 -0.437500 -0.432138
v 0.343750 -0.437500 -0.432138
v 0.343750 -0.500000 -0.432138
v 0.343750 -0.437500 -0.380362
v 0.343750 -0.500000 -0.380362
v 0.380362 -0.437500 -0.343750
v 0.380362 -0.500000 -0.343750
v 0.432138 -0.437500 -0.343750
v 0.432138 -0.500000 -0.343750
v 0.468750 -0.437500 -0.380362
v 0.468750 -0.500000 -0.380362
v 0.468750 -0.437500 -0.432138
v 0.468750 -0.500000 -0.432138
v 0.432138 -0.437500 -0.468750
v 0.432138 -0.500000 -0.468750
v 0.380362 -0.437500 -0.468750
v 0.380362 -0.500000 -0.468750
v 0.375000 0.312500 -0.437500
v -0.500000 -0.500000 0.437500
v -0.500000 -0.500000 -0.437500
v 0.375000 -0.312500 -0.437500
v -0.500000 0.500000 0.437500
v -0.500000 0.500000 -0.437500
v -0.097656 0.500000 0.039062
v -0.097656 -0.500000 0.039062
v 0.437500 0.500000 0.039062
v 0.437500 -0.500000 0.039062
v 0.437500 0.500000 -0.437500
v 0.437500 -0.500000 -0.437500
v -0.097656 -0.312500 0.437500
v -0.097656 -0.312500 0.039062
v 0.437500 -0.312500 0.039062
v 0.437500 -0.312500 -0.437500
v -0.097656 0.312500 0.437500
v 0.375000 -0.500000 -0.437500
v -0.097656 0.312500 0.039062
v 0.437500 0.312500 0.039062
v 0.437500 0.312500 -0.437500
v -0.312500 -0.312500 -0.125000
v -0.312500 0.312500 -0.125000
v -0.312500 -0.312500 0.437500
v -0.312500 0.312500 0.437500
v 0.187500 -0.312500 -0.109375
v 0.187500 0.312500 -0.109375
v -0.285156 -0.312500 0.156250
v -0.285156 0.312500 0.156250
v 0.312500 -0.312500 -0.125000
v -0.250000 0.312500 -0.109375
v -0.296875 -0.312500 -0.062500
v -0.296875 0.312500 0.375000
v -0.250000 -0.312500 -0.109375
v 0.312500 0.312500 -0.125000
v -0.296875 -0.312500 0.375000
v -0.296875 0.312500 -0.062500
v -0.031250 -0.312500 -0.101562
v -0.031250 0.312500 -0.101562
v -0.343750 0.432138 -0.500000
v -0.343750 0.432138 -0.437500
v -0.343750 0.380361 -0.500000
v -0.343750 0.380361 -0.437500
v -0.380362 0.343750 -0.500000
v -0.380362 0.343750 -0.437500
v -0.432139 0.343750 -0.500000
v -0.432139 0.343750 -0.437500
v -0.468750 0.380361 -0.500000
v -0.468750 0.380361 -0.437500
v -0.468750 0.432138 -0.500000
v -0.468750 0.432138 -0.437500
v -0.432139 0.468750 -0.500000
v -0.432139 0.468750 -0.437500
v -0.380362 0.468750 -0.500000
v -0.380362 0.468750 -0.437500
v -0.380361 -0.343750 -0.437500
v -0.380361 -0.343750 -0.500000
v -0.432138 -0.343750 -0.437500
v -0.432138 -0.343750 -0.500000
v -0.468750 -0.380362 -0.437500
v -0.468750 -0.380362 -0.500000
v -0.468750 -0.432139 -0.437500
v -0.468750 -0.432139 -0.500000
v -0.432138 -0.468750 -0.437500
v -0.432138 -0.468750 -0.500000
v -0.380361 -0.468750 -0.437500
v -0.380361 -0.468750 -0.500000
v -0.343750 -0.432139 -0.437500
v -0.343750 -0.432139 -0.500000
v -0.343750 -0.380362 -0.437500
v -0.343750 -0.380362 -0.500000
v 0.468750 0.432139 -0.500000
v 0.468750 0.432139 -0.437500
v 0.468750 0.380362 -0.500000
v 0.468750 0.380362 -0.437500
v 0.432138 0.343750 -0.500000
v 0.432138 0.343750 -0.437500
v 0.380361 0.343750 -0.500000
v 0.380361 0.343750 -0.437500
v 0.343750 0.380362 -0.500000
v 0.343750 0.380362 -0.437500
v 0.343750 0.432139 -0.500000
v 0.343750 0.432139 -0.437500
v 0.380361 0.468750 -0.500000
v 0.380361 0.468750 -0.437500
v 0.432138 0.468750 -0.500000
v 0.432138 0.468750 -0.437500
v 0.432139 -0.343750 -0.437500
v 0.432139 -0.343750 -0.500000
v 0.380362 -0.343750 -0.437500
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.601648
vt 0.000103 0.539162
@ -367,52 +367,52 @@ vt 0.125000 0.312500
vt 0.125000 0.375000
vt 0.187500 0.312500
vt 0.187500 0.375000
vn 0.341600 0.341600 -0.875600
vn 0.341600 0.875600 -0.341600
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.300200 0.905400 0.300200
vn -0.650700 0.391300 0.650700
vn 0.300200 0.905400 0.300200
vn 0.650700 0.391300 0.650700
vn -0.987800 0.110000 -0.110000
vn -0.717300 -0.630300 -0.297100
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 0.875600 -0.341600 0.341600
vn 0.341600 -0.341600 0.875600
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.300200 0.300200 0.905400
vn -0.650700 0.650700 0.391300
vn -0.300200 -0.300200 0.905400
vn -0.650700 -0.650700 0.391300
vn 0.110000 0.987800 0.110000
vn 0.297100 0.717300 -0.630300
vn -0.577400 0.577400 -0.577400
vn 1.000000 0.000000 0.000000
vn -0.707100 -0.707100 0.000000
vn 0.707100 -0.707100 0.000000
vn 0.000000 -1.000000 0.000000
vn 0.707100 0.000000 -0.707100
vn 0.923900 0.000000 0.382700
vn -0.139900 -0.000000 0.990200
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.707100 0.000000 0.707100
vn -0.707100 0.000000 -0.707100
vn -0.000000 1.000000 0.000000
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
s 1
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
o Cube
v -0.500000 -0.375000 1.437500
v -0.500000 -0.375000 -0.437500
v 0.500000 -0.375000 -0.437500
v 0.500000 -0.375000 1.437500
v -0.500000 -0.125000 1.437500
v -0.500000 -0.125000 -0.437500
v 0.500000 -0.125000 -0.437500
v 0.500000 -0.125000 1.437500
v -0.437500 -0.125000 1.437500
v -0.437500 -0.125000 -0.437500
v 0.437500 -0.125000 -0.437500
v 0.437500 -0.125000 1.437500
v 0.375000 -0.500000 -0.437500
v 0.375000 -0.500000 -0.500000
v -1.437500 0.500000 -0.375000
v 0.437500 0.500000 -0.375000
v 0.437500 -0.500000 -0.375000
v -1.437500 -0.500000 -0.375000
v -1.437500 0.500000 -0.125000
v 0.437500 0.500000 -0.125000
v 0.437500 -0.500000 -0.125000
v -1.437500 -0.500000 -0.125000
v -1.437500 0.437500 -0.125000
v 0.437500 0.437500 -0.125000
v 0.437500 -0.437500 -0.125000
v -1.437500 -0.437500 -0.125000
v 0.437500 -0.375000 -0.500000
v 0.500000 -0.375000 -0.500000
v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.437500
v 0.375000 0.500000 -0.437500
v 0.375000 0.500000 -0.500000
v 0.437500 -0.500000 -0.500000
v 0.437500 -0.375000 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.437500
v -0.500000 -0.500000 -0.437500
v -0.500000 -0.500000 -0.500000
v -0.375000 -0.500000 -0.500000
v -0.375000 -0.500000 -0.437500
v -0.500000 0.500000 -0.437500
v -0.500000 0.500000 -0.500000
v -0.375000 0.500000 -0.500000
v -0.375000 0.500000 -0.437500
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.500000 0.375000 -0.500000
v 0.437500 0.375000 -0.500000
v 0.437500 0.500000 0.500000
v 0.500000 0.500000 0.500000
v 0.500000 0.375000 0.500000
v 0.437500 0.375000 0.500000
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
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.375000 0.250000 -0.437500
v -0.375000 0.250000 -0.500000
v 0.375000 0.250000 -0.500000
v 0.375000 0.250000 -0.437500
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.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
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 0.062500 0.250000
vt 0.062500 -0.000000
@ -233,16 +233,16 @@ vt 0.750000 0.125000
vt 0.812500 0.062500
vt 0.812500 0.500000
vt 0.187500 0.500000
vn -1.000000 0.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.707100 0.707100 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.000000 -1.000000
vn 1.000000 0.000000 0.000000
vn -1.000000 0.000000 0.000000
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
s off
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
o Cube
v -0.500000 -0.375000 1.437500
v 0.500000 -0.375000 -0.437500
v 0.500000 -0.375000 1.437500
v 0.500000 -0.125000 -0.437500
v 0.500000 -0.125000 1.437500
v 0.437500 -0.125000 -0.437500
v 0.437500 -0.125000 1.437500
v 0.375000 -0.500000 -0.437500
v 0.375000 -0.500000 -0.500000
v -1.437500 0.500000 -0.375000
v 0.437500 -0.500000 -0.375000
v -1.437500 -0.500000 -0.375000
v 0.437500 -0.500000 -0.125000
v -1.437500 -0.500000 -0.125000
v 0.437500 -0.437500 -0.125000
v -1.437500 -0.437500 -0.125000
v 0.437500 -0.375000 -0.500000
v 0.500000 -0.375000 -0.500000
v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.437500
v 0.375000 0.187500 -0.437500
v 0.375000 0.187500 -0.500000
v 0.500000 0.187500 -0.500000
v 0.500000 0.187500 -0.437500
v -0.500000 -0.375000 -0.437500
v -0.500000 -0.375000 -0.500000
v 0.375000 -0.375000 -0.500000
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.500000 -0.500000
v 0.437500 -0.375000 0.187500
v 0.500000 -0.375000 0.187500
v 0.500000 -0.500000 0.187500
v 0.437500 -0.500000 0.187500
v 0.437500 0.500000 -0.375000
v 0.500000 0.500000 -0.375000
v 0.500000 -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.406250 -0.046875 1.000000
v -0.500000 -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 -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 0.437500 0.500000 -0.125000
v 0.500000 0.500000 -0.125000
v 0.500000 -0.375000 -0.125000
v 0.437500 -0.375000 -0.125000
v 0.437500 0.500000 0.000000
v 0.500000 0.500000 0.000000
v 0.500000 -0.375000 0.000000
v 0.437500 -0.375000 0.000000
v 0.437500 0.500000 0.125000
v 0.500000 0.500000 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.375000 -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.500000 -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 -0.500000 -0.375000 0.500000
v -1.437500 -0.375000 0.500000
v -1.437500 -0.375000 -0.437500
v -0.562500 -0.375000 -0.437500
v -0.562500 -0.375000 0.500000
v -1.500000 -0.500000 0.500000
v -1.437500 -0.500000 0.500000
v -1.437500 0.500000 -0.375000
v -1.500000 0.500000 -0.375000
v -1.500000 -0.375000 -0.375000
v -1.437500 -0.375000 -0.375000
v -0.562500 -0.375000 -0.375000
v -0.500000 -0.125000 -0.437500
v -0.500000 -0.046875 1.437500
v -0.500000 -0.125000 1.437500
v -0.500000 -0.078125 1.437500
v -0.500000 -0.046875 -0.437500
v -0.500000 -0.078125 -0.437500
v -0.562500 -0.500000 -0.375000
v -0.562500 -0.500000 -0.437500
v -0.437500 -0.500000 -0.437500
v -0.437500 -0.500000 -0.375000
v -0.562500 -0.375000 -0.375000
v -0.562500 -0.375000 -0.437500
v -0.437500 -0.375000 -0.437500
v -0.437500 -0.375000 -0.375000
v -0.562500 -0.500000 1.437500
v -0.562500 -0.500000 1.375000
v -0.437500 -0.500000 1.375000
v -0.437500 -0.500000 1.437500
v -0.562500 -0.375000 1.437500
v -0.562500 -0.375000 1.375000
v -0.437500 -0.375000 1.375000
v -0.437500 -0.375000 1.437500
v -1.437500 0.500000 -0.125000
v -1.500000 0.500000 -0.125000
v -1.500000 -0.375000 -0.125000
v -1.437500 -0.375000 -0.125000
v -1.437500 0.500000 -0.062500
v -1.500000 0.500000 -0.062500
v -1.500000 -0.375000 -0.062500
v -1.437500 -0.375000 -0.062500
v -1.437500 0.500000 0.187500
v -1.500000 0.500000 0.187500
v -1.500000 -0.375000 0.187500
v -1.437500 -0.375000 0.187500
v -1.437500 0.500000 0.250000
v -1.500000 0.500000 0.250000
v -1.500000 -0.375000 0.250000
v -1.437500 -0.375000 0.250000
v -1.437500 0.500000 0.437500
v -1.500000 0.500000 0.437500
v -1.500000 -0.375000 0.437500
v -1.437500 -0.375000 0.437500
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.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 0.062500 0.250000
vt 0.062500 -0.000000
@ -361,16 +361,16 @@ vt 0.750000 0.125000
vt 0.812500 0.062500
vt 0.812500 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 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 0.707100 0.707100 0.000000
vn -0.707100 0.707100 0.000000
vn 0.000000 0.707100 -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.707100 0.000000 0.707100
vn -0.707100 0.000000 0.707100
g Cube_Cube_frame-metal
s off
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
o Cube
v -0.500000 -0.375000 1.437500
v -0.500000 -0.375000 -0.437500
v 0.500000 -0.375000 -0.437500
v 0.500000 -0.375000 1.437500
v -0.500000 -0.125000 1.437500
v -0.500000 -0.125000 -0.437500
v 0.500000 -0.125000 -0.437500
v 0.500000 -0.125000 1.437500
v -0.437500 -0.125000 1.437500
v -0.437500 -0.125000 -0.437500
v 0.437500 -0.125000 -0.437500
v 0.437500 -0.125000 1.437500
v 0.375000 -0.500000 -0.437500
v 0.375000 -0.500000 -0.500000
v -1.437500 0.500000 -0.375000
v 0.437500 0.500000 -0.375000
v 0.437500 -0.500000 -0.375000
v -1.437500 -0.500000 -0.375000
v -1.437500 0.500000 -0.125000
v 0.437500 0.500000 -0.125000
v 0.437500 -0.500000 -0.125000
v -1.437500 -0.500000 -0.125000
v -1.437500 0.437500 -0.125000
v 0.437500 0.437500 -0.125000
v 0.437500 -0.437500 -0.125000
v -1.437500 -0.437500 -0.125000
v 0.437500 -0.375000 -0.500000
v 0.500000 -0.375000 -0.500000
v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.437500
v 0.375000 0.187500 -0.437500
v 0.375000 0.187500 -0.500000
v 0.500000 0.187500 -0.500000
v 0.500000 0.187500 -0.437500
v -0.500000 -0.500000 -0.437500
v -0.500000 -0.500000 -0.500000
v -0.375000 -0.500000 -0.500000
v -0.375000 -0.500000 -0.437500
v -0.500000 0.187500 -0.437500
v -0.500000 0.187500 -0.500000
v -0.375000 0.187500 -0.500000
v -0.375000 0.187500 -0.437500
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.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.500000 -0.500000
v 0.437500 -0.375000 0.187500
v 0.500000 -0.375000 0.187500
v 0.500000 -0.500000 0.187500
v 0.437500 -0.500000 0.187500
v 0.437500 0.500000 -0.500000
v 0.500000 0.500000 -0.500000
v 0.500000 0.375000 -0.500000
v 0.437500 0.375000 -0.500000
v 0.437500 0.500000 0.187500
v 0.500000 0.500000 0.187500
v 0.500000 0.375000 0.187500
v 0.437500 0.375000 0.187500
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
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 0.062500 0.250000
vt 0.062500 -0.000000
@ -227,16 +227,16 @@ vt 0.750000 0.125000
vt 0.812500 0.062500
vt 0.812500 0.500000
vt 0.187500 0.500000
vn -1.000000 0.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.707100 0.707100 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.000000 -1.000000
vn 1.000000 0.000000 0.000000
vn -1.000000 0.000000 0.000000
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
s off
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
o Cube.002_Cube.001
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.115781 -0.500002 -0.220555
v -0.159347 -0.485966 0.216624
vt 0.921987 0.383861
vt 0.921987 0.340448
vt 0.931829 0.340448
vt 0.931829 0.383861
vt 0.931829 0.427274
vt 0.921987 0.427274
vt 0.768089 0.490273
vt 0.722954 0.490273
vt 0.722954 0.009727
vt 0.768089 0.009727
vt 0.768089 0.500000
vt 0.722404 0.500000
vt 0.809636 0.490273
vt 0.809086 0.500000
vt 0.352434 0.000000
vt 0.670829 0.000000
vt 0.670829 0.009727
vt 0.670829 0.490273
vt 0.670829 0.500000
vt 0.352433 0.499999
vt 0.809636 0.009727
vt 0.809086 0.000000
vt 0.823601 0.000000
vt 0.824288 0.009727
vt 0.012060 0.509727
vt 0.000000 0.500001
vt 0.315359 0.500000
vt 0.318396 0.509727
vt 0.700649 0.000000
vt 0.704866 0.009727
vt 0.731001 0.867517
vt 0.731001 0.844673
vt 0.774928 0.811661
vt 0.774928 0.853302
vt 0.687072 0.853302
vt 0.687072 0.811661
vt 0.774928 0.500000
vt 0.791171 0.500000
vt 0.791171 0.814662
vt 0.791171 0.844133
vt 0.851343 0.522844
vt 0.851343 0.500000
vt 0.895271 0.514215
vt 0.895271 0.555856
vt 0.912144 0.383862
vt 0.912144 0.340448
vt 0.334639 0.500000
vt 0.334639 0.999999
vt 0.318396 0.999999
vt 0.318396 0.500000
vt 0.895271 0.867517
vt 0.911514 0.523384
vt 0.911514 0.552855
vt 0.911514 0.867516
vt 0.824288 0.490273
vt 0.823601 0.500000
vt 0.807415 0.555856
vt 0.807415 0.514215
vt 0.768089 0.000000
vt 0.722404 0.000000
vt 0.912144 0.427274
vt 0.318396 0.990273
vt 0.315359 1.000000
vt 0.000000 1.000000
vt 0.012060 0.990274
vt 0.704866 0.490273
vt 0.318396 0.490273
vt 0.318396 0.009727
vt 0.352433 0.009727
vt 0.352433 0.490273
vt 0.705553 0.490273
vt 0.705553 0.009727
vt 0.670829 0.509727
vt 0.364493 0.509726
vt 0.667792 0.500000
vt 0.318396 0.000000
vt 0.348216 0.000000
vt 0.704866 0.500000
vt 0.807415 0.867517
vt 0.791172 0.867516
vt 0.791171 0.552855
vt 0.791171 0.523384
vt 0.336190 0.500000
vt 0.352433 0.999999
vt 0.336190 0.999999
vt 0.670829 0.844133
vt 0.670829 0.814662
vt 0.687072 0.500000
vt 0.348216 0.500000
vt 0.364493 0.990273
vt 0.670829 0.990273
vt 0.667792 1.000000
vt 0.704866 0.000000
vt 0.000000 0.000001
vt 0.439305 1.000000
vt 0.439305 0.319104
vt 0.527160 0.379125
vt 0.527160 0.984613
vt 0.087857 1.000000
vt 0.087857 0.319104
vt 0.175712 0.334491
vt 0.175712 0.939979
vt 0.351448 0.984613
vt 0.351448 0.379125
vt 0.000000 0.939979
vt 0.000000 0.334491
vt 0.351448 0.000000
vt 0.351448 0.961094
vt 0.263593 0.961094
vt 0.263593 0.000000
vt 0.175736 0.000000
vt 0.175736 0.961094
vn -0.803100 -0.582900 0.123900
vn -0.803000 0.582900 0.123900
vn 0.970000 0.243100 0.000000
vn 0.947900 0.274000 -0.162500
vn 0.947900 -0.274000 -0.162500
vn -0.000000 -1.000000 -0.000000
vn 0.831600 -0.453400 0.320700
vn 0.000000 1.000000 -0.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 0.000000 -1.000000
vn -0.803100 -0.582900 -0.123900
vn -1.000000 -0.000000 -0.000000
vn 0.831600 -0.453400 -0.320700
vn 0.947900 -0.274000 0.162500
vn 0.970000 -0.243100 -0.000000
vn 0.947900 0.274000 0.162500
vn -0.803000 0.582900 -0.123900
vn 0.887500 -0.460900 -0.000000
vn 0.887500 0.460900 -0.000000
vn 0.831600 0.453400 -0.320700
vn 0.831600 0.453400 0.320700
vn -0.984700 -0.174500 -0.000000
vn -0.984700 0.174500 0.000000
vt 0.9220 0.3839
vt 0.9220 0.3404
vt 0.9318 0.3404
vt 0.9318 0.3839
vt 0.9318 0.4273
vt 0.9220 0.4273
vt 0.7681 0.4903
vt 0.7230 0.4903
vt 0.7230 0.0097
vt 0.7681 0.0097
vt 0.7681 0.5000
vt 0.7224 0.5000
vt 0.8096 0.4903
vt 0.8091 0.5000
vt 0.3524 0.0000
vt 0.6708 0.0000
vt 0.6708 0.0097
vt 0.6708 0.4903
vt 0.6708 0.5000
vt 0.3524 0.5000
vt 0.8096 0.0097
vt 0.8091 0.0000
vt 0.8236 0.0000
vt 0.8243 0.0097
vt 0.0121 0.5097
vt 0.0000 0.5000
vt 0.3154 0.5000
vt 0.3184 0.5097
vt 0.7006 0.0000
vt 0.7049 0.0097
vt 0.7310 0.8675
vt 0.7310 0.8447
vt 0.7749 0.8117
vt 0.7749 0.8533
vt 0.6871 0.8533
vt 0.6871 0.8117
vt 0.7749 0.5000
vt 0.7912 0.5000
vt 0.7912 0.8147
vt 0.7912 0.8441
vt 0.8513 0.5228
vt 0.8513 0.5000
vt 0.8953 0.5142
vt 0.8953 0.5559
vt 0.9220 0.3404
vt 0.9220 0.3839
vt 0.9121 0.3839
vt 0.9121 0.3404
vt 0.3346 0.5000
vt 0.3346 1.0000
vt 0.3184 1.0000
vt 0.3184 0.5000
vt 0.8953 0.8675
vt 0.9115 0.5234
vt 0.9115 0.5529
vt 0.9115 0.8675
vt 0.8243 0.4903
vt 0.8236 0.5000
vt 0.8074 0.5559
vt 0.8074 0.5142
vt 0.7681 0.0000
vt 0.7224 0.0000
vt 0.9220 0.4273
vt 0.9121 0.4273
vt 0.3184 0.9903
vt 0.3154 1.0000
vt 0.0000 1.0000
vt 0.0121 0.9903
vt 0.7049 0.4903
vt 0.3184 0.4903
vt 0.3184 0.0097
vt 0.3524 0.0097
vt 0.3524 0.4903
vt 0.7056 0.4903
vt 0.7056 0.0097
vt 0.6708 0.5097
vt 0.3645 0.5097
vt 0.3524 0.5000
vt 0.6678 0.5000
vt 0.3184 0.0000
vt 0.3482 0.0000
vt 0.7049 0.5000
vt 0.8074 0.8675
vt 0.7912 0.8675
vt 0.7912 0.5529
vt 0.7912 0.5234
vt 0.3362 0.5000
vt 0.3524 1.0000
vt 0.3362 1.0000
vt 0.6708 0.8441
vt 0.6708 0.8147
vt 0.6708 0.5000
vt 0.6871 0.5000
vt 0.3482 0.5000
vt 0.3184 0.5000
vt 0.3645 0.9903
vt 0.6708 0.9903
vt 0.6678 1.0000
vt 0.7049 0.0000
vt 0.0000 0.5000
vt 0.0000 0.0000
vt 0.6685 0.6398
vt 0.6407 0.6398
vt 0.6407 0.6306
vt 0.6725 0.6306
vt 0.4393 1.0000
vt 0.4393 0.3191
vt 0.5272 0.3791
vt 0.5272 0.9846
vt 0.0879 1.0000
vt 0.0879 0.3191
vt 0.1757 0.3345
vt 0.1757 0.9400
vt 0.3514 0.9846
vt 0.3514 0.3791
vt 0.0000 0.9400
vt 0.0000 0.3345
vt 0.3514 0.0000
vt 0.3514 0.9611
vt 0.2636 0.9611
vt 0.2636 0.0000
vt 0.1757 0.0000
vt 0.1757 0.9611
vn -0.8031 -0.5829 0.1239
vn -0.8030 0.5829 0.1239
vn 0.9700 0.2431 -0.0000
vn 0.9479 0.2740 -0.1625
vn 0.9479 -0.2740 -0.1625
vn -0.0000 -1.0000 -0.0000
vn 0.8316 -0.4534 0.3207
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 0.0000 -1.0000
vn -0.8031 -0.5829 -0.1239
vn -1.0000 -0.0000 -0.0000
vn 0.8316 -0.4534 -0.3207
vn 0.9479 -0.2740 0.1625
vn 0.9700 -0.2431 -0.0000
vn 0.9479 0.2740 0.1625
vn -0.8030 0.5829 -0.1239
vn 0.8875 -0.4609 -0.0000
vn 0.8875 0.4609 -0.0000
vn 0.8316 0.4534 -0.3207
vn 0.8316 0.4534 0.3207
vn -0.9847 -0.1745 0.0000
vn -0.9847 0.1745 0.0000
g Cube.002_Cube.001_Cube.002_Cube.001_cover
s off
f 47/1/1 31/2/1 33/3/1 52/4/1
@ -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 2/34/9 3/33/9 54/37/9 51/38/9 45/39/9 46/40/9
f 52/41/10 17/42/10 48/43/10 7/44/10
f 34/2/11 6/1/11 4/45/11 35/46/11
f 50/47/12 51/48/12 54/49/12 8/50/12
f 8/51/10 7/44/10 48/43/10 49/52/10 53/53/10 50/54/10
f 19/55/13 49/56/13 48/14/13 16/13/13
f 52/41/10 33/57/10 39/58/10 17/42/10
f 10/10/14 1/59/14 2/22/14 15/21/14
f 34/45/11 6/46/11 4/47/11 35/48/11
f 50/49/12 51/50/12 54/51/12 8/52/12
f 8/53/10 7/44/10 48/43/10 49/54/10 53/55/10 50/56/10
f 19/57/13 49/58/13 48/14/13 16/13/13
f 52/41/10 33/59/10 39/60/10 17/42/10
f 10/10/14 1/61/14 2/22/14 15/21/14
f 18/7/15 10/10/15 15/21/15 16/13/15
f 10/10/16 28/9/16 36/60/16 1/59/16
f 5/6/17 3/61/17 4/45/17 6/1/17
f 9/62/8 7/63/8 8/64/8 14/65/8
f 16/13/18 15/21/18 20/24/18 19/55/18
f 22/17/6 19/30/6 20/66/6 21/18/6
f 23/67/8 24/68/8 25/69/8 26/70/8
f 27/8/19 26/71/19 25/72/19 28/9/19
f 31/73/6 29/74/6 32/20/6 33/75/6
f 25/69/8 24/68/8 37/76/8 38/77/8
f 26/71/20 27/8/20 39/12/20 40/78/20
f 32/79/10 41/80/10 43/81/10 40/82/10 39/58/10 33/57/10
f 41/83/12 32/20/12 44/84/12 42/85/12
f 36/35/9 38/86/9 37/87/9 42/19/9 44/88/9 35/36/9
f 23/67/8 26/70/8 40/89/8 43/50/8
f 30/90/6 34/91/6 35/92/6 44/84/6
f 28/9/21 25/72/21 38/93/21 36/60/21
f 29/74/6 30/90/6 44/84/6 32/20/6
f 41/26/8 42/94/8 37/76/8 24/68/8 23/67/8 43/50/8
f 54/26/8 11/25/8 14/65/8 8/64/8
f 10/10/16 28/9/16 36/62/16 1/61/16
f 5/63/17 3/64/17 4/47/17 6/46/17
f 9/65/8 7/66/8 8/67/8 14/68/8
f 16/13/18 15/21/18 20/24/18 19/57/18
f 22/17/6 19/30/6 20/69/6 21/18/6
f 23/70/8 24/71/8 25/72/8 26/73/8
f 27/8/19 26/74/19 25/75/19 28/9/19
f 31/76/6 29/77/6 32/78/6 33/79/6
f 25/72/8 24/71/8 37/80/8 38/81/8
f 26/74/20 27/8/20 39/12/20 40/82/20
f 32/83/10 41/84/10 43/85/10 40/86/10 39/60/10 33/59/10
f 41/87/12 32/78/12 44/88/12 42/89/12
f 36/35/9 38/90/9 37/91/9 42/92/9 44/93/9 35/36/9
f 23/70/8 26/73/8 40/94/8 43/95/8
f 30/96/6 34/97/6 35/98/6 44/88/6
f 28/9/21 25/75/21 38/99/21 36/62/21
f 29/77/6 30/96/6 44/88/6 32/78/6
f 41/100/8 42/101/8 37/80/8 24/71/8 23/70/8 43/95/8
f 54/26/8 11/25/8 14/68/8 8/67/8
f 46/102/6 45/103/6 21/104/6 20/105/6
g Cube.002_Cube.001_Cube.002_Cube.001_edges
f 13/95/10 47/96/10 9/97/10 14/98/10
f 6/99/9 12/100/9 11/101/9 5/102/9
f 13/95/10 29/103/10 31/104/10 47/96/10
f 6/99/9 34/105/9 30/106/9 12/100/9
f 14/107/22 11/108/22 12/109/22 13/110/22
f 29/111/23 13/110/23 12/109/23 30/112/23
f 13/106/10 47/107/10 9/108/10 14/109/10
f 6/110/9 12/111/9 11/112/9 5/113/9
f 13/106/10 29/114/10 31/115/10 47/107/10
f 6/110/9 34/116/9 30/117/9 12/111/9
f 14/118/22 11/119/22 12/120/22 13/121/22
f 29/122/23 13/121/23 12/120/23 30/123/23

View File

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

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
o Cylinder
v 0.312500 -0.125000 0.187500
v -0.312500 -0.125000 0.187500
v 0.312500 -0.500000 -0.312500
v 0.312500 -0.500000 -0.187500
v 0.187500 -0.500000 -0.187500
v 0.187500 -0.500000 -0.312500
v 0.312500 -0.125000 -0.312500
v 0.312500 -0.125000 -0.187500
v 0.187500 -0.125000 -0.187500
v 0.187500 -0.125000 -0.312500
v -0.187500 -0.500000 -0.312500
v -0.187500 -0.500000 -0.187500
v -0.312500 -0.500000 -0.187500
v -0.187500 -0.125000 -0.312500
v -0.187500 -0.125000 -0.187500
v -0.312500 -0.125000 -0.187500
v -0.312500 -0.125000 -0.312500
v 0.312500 -0.062500 0.187500
v 0.312500 -0.062500 -0.312500
v -0.312500 -0.062500 -0.312500
v 0.312500 0.000000 0.187500
v -0.312500 0.000000 0.187500
v 0.312500 0.000000 -0.312500
v -0.312500 0.000000 -0.312500
v 0.312500 0.500000 0.312500
v 0.312500 0.500000 0.187500
v 0.187500 0.500000 0.187500
v 0.187500 0.500000 0.312500
v -0.187500 0.500000 0.312500
v -0.187500 0.500000 0.187500
v -0.312500 0.500000 0.187500
v -0.312500 0.500000 0.312500
v -0.312500 -0.062500 0.187500
v 0.187500 0.437500 0.257812
v -0.187500 0.437500 0.257813
v 0.187500 0.062500 0.257812
v -0.187500 0.062500 0.257813
v 0.187500 0.437500 0.242187
v -0.187500 0.437500 0.242187
v 0.187500 0.062500 0.242188
v -0.187500 0.062500 0.242188
v -0.187500 -0.500000 -0.312500
v -0.187500 -0.500000 -0.187500
v -0.312500 -0.500000 -0.187500
v -0.312500 -0.500000 -0.312500
v -0.187500 -0.125000 -0.312500
v -0.312500 -0.125000 -0.187500
v -0.312500 -0.125000 -0.312500
v 0.312500 -0.500000 0.187500
v 0.187500 -0.500000 0.312500
v 0.187500 -0.500000 0.187500
v 0.312500 0.500000 0.187500
v 0.187500 0.500000 0.312500
v 0.187500 0.500000 0.187500
v -0.187500 0.500000 0.187500
v -0.312500 -0.500000 0.187500
v 0.312500 0.500000 0.312500
v 0.312500 0.500000 0.187500
v 0.187500 -0.500000 0.187500
v 0.187500 -0.500000 0.312500
v 0.312500 -0.500000 0.312500
v 0.312500 -0.500000 0.187500
v -0.312500 -0.500000 0.312500
v -0.187500 -0.500000 0.312500
v -0.187500 -0.500000 0.187500
v 0.187500 0.500000 0.312500
v -0.187500 0.500000 0.312500
v -0.312500 0.500000 0.312500
v -0.312500 0.500000 0.187500
v -0.187500 -0.125000 0.187500
v -0.187500 0.000000 0.187500
v 0.187500 -0.125000 0.187500
v 0.187500 0.000000 0.187500
v -0.187500 -0.125000 0.312500
v -0.187500 0.000000 0.312500
v 0.187500 -0.125000 0.312500
v 0.187500 -0.062500 0.312500
v 0.187500 0.000000 0.312500
v -0.187500 -0.062500 0.312500
v -0.187500 -0.312500 -0.125000
v -0.187500 0.312500 -0.125000
v 0.312500 -0.312500 -0.500000
v 0.187500 -0.312500 -0.500000
v 0.187500 -0.187500 -0.500000
v 0.312500 -0.187500 -0.500000
v 0.312500 -0.312500 -0.125000
v 0.187500 -0.312500 -0.125000
v 0.187500 -0.187500 -0.125000
v 0.312500 -0.187500 -0.125000
v 0.312500 0.187500 -0.500000
v 0.187500 0.187500 -0.500000
v 0.187500 0.312500 -0.500000
v 0.312500 0.187500 -0.125000
v 0.187500 0.187500 -0.125000
v 0.187500 0.312500 -0.125000
v 0.312500 0.312500 -0.125000
v -0.187500 -0.312500 -0.062500
v 0.312500 -0.312500 -0.062500
v 0.312500 0.312500 -0.062500
v -0.187500 -0.312500 0.000000
v -0.187500 0.312500 0.000000
v 0.312500 -0.312500 0.000000
v 0.312500 0.312500 0.000000
v -0.312500 -0.312500 0.500000
v -0.187500 -0.312500 0.500000
v -0.187500 -0.187500 0.500000
v -0.312500 -0.187500 0.500000
v -0.312500 0.187500 0.500000
v -0.187500 0.187500 0.500000
v -0.187500 0.312500 0.500000
v -0.312500 0.312500 0.500000
v -0.187500 0.312500 -0.062500
v -0.257812 -0.187500 0.437500
v -0.257813 0.187500 0.437500
v -0.257812 -0.187500 0.062500
v -0.257813 0.187500 0.062500
v -0.242187 -0.187500 0.437500
v -0.242187 0.187500 0.437500
v -0.242188 -0.187500 0.062500
v -0.242188 0.187500 0.062500
v 0.312500 0.187500 -0.500000
v 0.187500 0.187500 -0.500000
v 0.187500 0.312500 -0.500000
v 0.312500 0.312500 -0.500000
v 0.312500 0.187500 -0.125000
v 0.187500 0.312500 -0.125000
v 0.312500 0.312500 -0.125000
v -0.187500 -0.312500 -0.500000
v -0.312500 -0.187500 -0.500000
v -0.187500 -0.187500 -0.500000
v -0.187500 -0.312500 0.500000
v -0.312500 -0.187500 0.500000
v -0.187500 -0.187500 0.500000
v -0.187500 0.187500 0.500000
v -0.187500 0.312500 -0.500000
v -0.312500 -0.312500 0.500000
v -0.187500 -0.312500 0.500000
v -0.187500 -0.187500 -0.500000
v -0.312500 -0.187500 -0.500000
v -0.312500 -0.312500 -0.500000
v -0.187500 -0.312500 -0.500000
v -0.312500 0.312500 -0.500000
v -0.312500 0.187500 -0.500000
v -0.187500 0.187500 -0.500000
v -0.312500 -0.187500 0.500000
v -0.312500 0.187500 0.500000
v -0.312500 0.312500 0.500000
v -0.187500 0.312500 0.500000
v -0.187500 0.187500 -0.125000
v -0.187500 0.187500 0.000000
v -0.187500 -0.187500 -0.125000
v -0.187500 -0.187500 0.000000
v -0.312500 0.187500 -0.125000
v -0.312500 0.187500 0.000000
v -0.312500 -0.187500 -0.125000
v -0.312500 -0.187500 -0.062500
v -0.312500 -0.187500 0.000000
v -0.312500 0.187500 -0.062500
vt 0.125000 0.375000
vt 0.625000 0.375000
vt 0.625000 0.437500
@ -155,12 +155,12 @@ vt 0.750000 0.750000
vt 0.250000 0.750000
vt 0.312500 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 -0.000000 1.000000 0.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
s off
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
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.460698 0.344815
v -0.437500 -0.460698 0.344815
v 0.437500 -0.476874 0.405185
v -0.437500 -0.476874 0.405185
v 0.437500 -0.460698 -0.405185
v -0.437500 -0.460698 -0.405185
v 0.437500 -0.476874 -0.344815
v -0.437500 -0.476874 -0.344815
v 0.437500 -0.460698 -0.311435
v -0.437500 -0.460698 -0.311435
v 0.437500 -0.476874 -0.251065
v -0.437500 -0.476874 -0.251065
v 0.437500 -0.460698 0.251065
v -0.437500 -0.460698 0.251065
v 0.437500 -0.476874 0.311435
v -0.437500 -0.476874 0.311435
v 0.437500 -0.460698 0.157315
v -0.437500 -0.460698 0.157315
v 0.437500 -0.476874 0.217685
v -0.437500 -0.476874 0.217685
v 0.437500 -0.460698 -0.217685
v -0.437500 -0.460698 -0.217685
v 0.437500 -0.476874 -0.157315
v -0.437500 -0.476874 -0.157315
v 0.437500 -0.460698 -0.123935
v -0.437500 -0.460698 -0.123935
v 0.437500 -0.476874 -0.063565
v -0.437500 -0.476874 -0.063565
v 0.437500 -0.460698 0.063565
v -0.437500 -0.460698 0.063565
v 0.437500 -0.476874 0.123935
v -0.437500 -0.476874 0.123935
v 0.437500 -0.461698 0.344815
v -0.437500 -0.461698 0.344815
v 0.437500 -0.477874 0.405185
v -0.437500 -0.477874 0.405185
v 0.437500 -0.461698 -0.405185
v -0.437500 -0.461698 -0.405185
v 0.437500 -0.477874 -0.344815
v -0.437500 -0.477874 -0.344815
v 0.437500 -0.461698 -0.311435
v -0.437500 -0.461698 -0.311435
v 0.437500 -0.477874 -0.251065
v -0.437500 -0.477874 -0.251065
v 0.437500 -0.461698 0.251065
v -0.437500 -0.461698 0.251065
v 0.437500 -0.477874 0.311435
v -0.437500 -0.477874 0.311435
v 0.437500 -0.461698 0.157315
v -0.437500 -0.461698 0.157315
v 0.437500 -0.477874 0.217685
v -0.437500 -0.477874 0.217685
v 0.437500 -0.461698 -0.217685
v -0.437500 -0.461698 -0.217685
v 0.437500 -0.477874 -0.157315
v -0.437500 -0.477874 -0.157315
v 0.437500 -0.461698 -0.123935
v -0.437500 -0.461698 -0.123935
v 0.437500 -0.477874 -0.063565
v -0.437500 -0.477874 -0.063565
v 0.437500 -0.461698 0.063565
v -0.437500 -0.461698 0.063565
v 0.437500 -0.477874 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
@ -167,57 +167,41 @@ vt 0.945313 0.062500
vt 0.992188 0.062500
vt 0.992187 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
s off
f 7/1/1 8/2/1 6/3/1 5/4/1
f 11/5/1 12/6/1 10/7/1 9/8/1
f 15/9/1 16/10/1 14/11/1 13/12/1
f 19/13/1 20/14/1 18/15/1 17/16/1
f 23/17/1 24/18/1 22/19/1 21/20/1
f 27/21/1 28/22/1 26/23/1 25/24/1
f 31/25/1 32/26/1 30/27/1 29/28/1
f 35/29/1 36/30/1 34/31/1 33/32/1
f 37/33/2 38/34/2 39/35/2 40/36/2
f 3/37/3 38/38/3 37/39/3 4/40/3
f 1/41/4 40/42/4 39/43/4 2/44/4
f 3/34/5 4/33/5 1/45/5 2/46/5
f 41/47/4 42/48/4 43/49/4 44/50/4
f 46/51/3 53/52/3 51/53/3 47/54/3
f 41/55/6 44/50/6 47/54/6 51/56/6
f 41/50/7 51/54/7 55/57/7 56/58/7
f 41/50/8 56/58/8 54/59/8 42/49/8
f 51/54/9 53/51/9 52/60/9 55/57/9
f 52/60/10 53/51/10 42/49/10 54/59/10
f 42/61/11 53/62/11 46/51/11 43/49/11
f 44/50/12 43/49/12 49/59/12 50/58/12
f 48/57/13 47/54/13 44/50/13 50/58/13
f 43/49/14 46/51/14 45/60/14 49/59/14
f 45/60/15 46/51/15 47/54/15 48/57/15
f 50/63/3 49/64/3 54/65/3 56/66/3
f 45/67/4 48/68/4 55/69/4 52/70/4
f 48/71/11 50/72/11 56/73/11 55/74/11
f 54/75/6 49/76/6 45/77/6 52/78/6
f 59/1/16 57/4/16 58/3/16 60/2/16
f 63/5/16 61/8/16 62/7/16 64/6/16
f 67/9/16 65/12/16 66/11/16 68/10/16
f 71/13/16 69/16/16 70/15/16 72/14/16
f 75/17/16 73/20/16 74/19/16 76/18/16
f 79/21/16 77/24/16 78/23/16 80/22/16
f 83/25/16 81/28/16 82/27/16 84/26/16
f 87/29/16 85/32/16 86/31/16 88/30/16
f 7/1 8/2 6/3 5/4
f 11/5 12/6 10/7 9/8
f 15/9 16/10 14/11 13/12
f 19/13 20/14 18/15 17/16
f 23/17 24/18 22/19 21/20
f 27/21 28/22 26/23 25/24
f 31/25 32/26 30/27 29/28
f 35/29 36/30 34/31 33/32
f 37/33 38/34 39/35 40/36
f 3/37 38/38 37/39 4/40
f 1/41 40/42 39/43 2/44
f 3/34 4/33 1/45 2/46
f 41/47 42/48 43/49 44/50
f 46/51 53/52 51/53 47/54
f 41/55 44/50 47/54 51/56
f 41/50 51/54 55/57 56/58
f 41/50 56/58 54/59 42/49
f 51/54 53/51 52/60 55/57
f 52/60 53/51 42/49 54/59
f 42/61 53/62 46/51 43/49
f 44/50 43/49 49/59 50/58
f 48/57 47/54 44/50 50/58
f 43/49 46/51 45/60 49/59
f 45/60 46/51 47/54 48/57
f 50/63 49/64 54/65 56/66
f 45/67 48/68 55/69 52/70
f 48/71 50/72 56/73 55/74
f 54/75 49/76 45/77 52/78
f 59/1 57/4 58/3 60/2
f 63/5 61/8 62/7 64/6
f 67/9 65/12 66/11 68/10
f 71/13 69/16 70/15 72/14
f 75/17 73/20 74/19 76/18
f 79/21 77/24 78/23 80/22
f 83/25 81/28 82/27 84/26
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", {
description = S("Filing cabinet"),
@ -22,12 +23,12 @@ local desk_cbox = {
fixed = { -0.5, -0.5, -0.5, 1.5, 0.5, 0.5 }
}
homedecor.register("desk", {
description = "Desk",
description = S("Desk"),
mesh = "homedecor_desk.obj",
tiles = {
homedecor.plain_wood,
"homedecor_desk_drawers.png",
"homedecor_generic_metal_black.png",
{ name = "homedecor_generic_metal.png", color = homedecor.color_black }
},
inventory_image = "homedecor_desk_inv.png",
selection_box = desk_cbox,
@ -48,11 +49,11 @@ local globe_cbox = {
}
homedecor.register("desk_globe", {
description = "Desk globe",
description = S("Desk globe"),
mesh = "homedecor_desk_globe.obj",
tiles = {
"homedecor_generic_wood_red.png",
"homedecor_generic_metal_black.png^[brighten",
{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
"homedecor_earth.png"
},
inventory_image = "homedecor_desk_globe_inv.png",
@ -64,7 +65,7 @@ homedecor.register("desk_globe", {
})
homedecor.register("calendar", {
description = "Calendar",
description = S("Calendar"),
mesh = "homedecor_calendar.obj",
tiles = {"homedecor_calendar.png"},
inventory_image = "homedecor_calendar_inv.png",
@ -80,11 +81,11 @@ homedecor.register("calendar", {
groups = {choppy=2,attached_node=1},
legacy_wallmounted = true,
sounds = default.node_sound_defaults(),
infotext = "Date (right-click to update):\n" .. os.date("%Y-%m-%d"), -- ISO 8601 format
infotext = S("Date (right-click to update):\n@1", os.date("%Y-%m-%d")), -- ISO 8601 format
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local meta = minetest.get_meta(pos)
local date = os.date("%Y-%m-%d")
meta:set_string("infotext", "Date (right-click to update):\n"..date)
meta:set_string("infotext", S("Date (right-click to update):\n@1", date))
return itemstack
end
})
@ -103,12 +104,18 @@ local ofchairs_cbox = {
}
}
for _, c in pairs({"basic", "upscale"}) do
homedecor.register("office_chair_"..c, {
description = "Office chair ("..c..")",
local chairs = {
{ "basic", S("Basic office chair") },
{ "upscale", S("Upscale office chair") },
}
for _, c in pairs(chairs) do
local name, desc = unpack(c)
homedecor.register("office_chair_"..name, {
description = desc,
drawtype = "mesh",
tiles = { "homedecor_office_chair_"..c..".png" },
mesh = "homedecor_office_chair_"..c..".obj",
tiles = { "homedecor_office_chair_"..name..".png" },
mesh = "homedecor_office_chair_"..name..".obj",
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
selection_box = ofchairs_sbox,

View File

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

View File

@ -1,19 +1,18 @@
-- Various kinds of window shutters
local S = homedecor.gettext
local S = homedecor_i18n.gettext
local shutters = {
{"oak", S("unpainted oak"), "#bf8a51:200" },
{"mahogany", S("mahogany"), "#822606:200" },
{"red", S("red"), "#d00000:150" },
{"yellow", S("yellow"), "#ffff00:150" },
{"forest_green", S("forest green"), "#006000:150" },
{"light_blue", S("light blue"), "#1963c7:150" },
{"violet", S("violet"), "#6000ff:150" },
{"black", S("black"), "#000000:200" },
{"dark_grey", S("dark grey"), "#202020:200" },
{"grey", S("grey"), "#c0c0c0:150" },
{"white", S("white"), "#ffffff:150" },
"mahogany",
"red",
"yellow",
"forest_green",
"light_blue",
"violet",
"black",
"dark_grey",
"grey",
"white",
}
local shutter_cbox = {
@ -23,27 +22,80 @@ local shutter_cbox = {
wall_side = { -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 }
}
for _, s in ipairs(shutters) do
local name, desc, hue = unpack(s)
local inv = "homedecor_window_shutter_inv.png^[colorize:#a87034:150"
local tile = "homedecor_window_shutter.png^[colorize:"..hue
local inv = "homedecor_window_shutter_inv.png^[colorize:"..hue
homedecor.register("shutter", {
mesh = "homedecor_window_shutter.obj",
tiles = {
{ name = "homedecor_window_shutter.png", color = 0xffa87034 }
},
description = S("Wooden Shutter"),
inventory_image = inv,
wield_image = inv,
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
airbrush_replacement_node = "homedecor:shutter_colored",
groups = { snappy = 3, ud_param2_colorable = 1 },
sounds = default.node_sound_wood_defaults(),
selection_box = shutter_cbox,
node_box = shutter_cbox,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
end,
})
homedecor.register("shutter_"..name, {
mesh = "homedecor_window_shutter.obj",
tiles = { tile },
description = S("Wooden Shutter (@1)", desc),
inventory_image = inv,
wield_image = inv,
paramtype2 = "wallmounted",
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
selection_box = shutter_cbox,
node_box = shutter_cbox,
-- collision_box doesn't accept type="wallmounted", but node_box
-- does. Said nodeboxes create a custom collision box but are
-- invisible themselves because drawtype="mesh".
})
end
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)
end,
})
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,9 +1,10 @@
local S = homedecor.gettext
local S = homedecor_i18n.gettext
-- Various kinds of tables
local materials = {
{ "glass",
{ "glass",
S("Small square glass table"),
S("Small round glass table"),
S("Large glass table piece"),

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 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.

Before

Width:  |  Height:  |  Size: 309 B

View File

Before

Width:  |  Height:  |  Size: 390 B

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

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