1
0
mirror of https://github.com/mt-mods/homedecor_modpack.git synced 2024-09-27 13:50:19 +02:00

Compare commits

..

148 Commits

Author SHA1 Message Date
wsor4035
335559feb3 fix seating only working once till server restarts 2024-09-11 20:18:38 -04:00
wsor4035
a100d20d4d
implements https://github.com/mt-mods/homedecor_modpack/issues/31 - show players sitting in seats (#76)
* implment https://github.com/mt-mods/homedecor_modpack/issues/31 - show players sitting in seats

* improve things
2024-09-09 12:11:43 -04:00
wsor4035
b2e5c81e4d switch over to using xcompats function 2024-09-08 19:26:36 -04:00
Niklp
8f796e43af
Replace deprecated get_metadata() call (#75) 2024-07-16 15:50:36 +10:00
Niklp
1ef4837abe
Use initial_properties for entities (#74) 2024-07-03 16:09:31 +10:00
monk
d0ab9b82ce
reorder registration of aliases to fix missing recipes, also reorder registration of dye recipes to show item craft first before recipe craft (#72) 2024-05-23 18:37:28 -04:00
wsor4035
fa3f7f816b
trash unused function: homedecor.sit (#71) 2024-04-28 14:48:03 -04:00
Niklp
d400e421ce
Replace homedecor_blanktile.png w/ engine provided blank.png (#69) 2024-04-02 18:08:49 -04:00
wsor4035
792c23a7fe
handle interact with node check in non mtg games with a fallback (#68) 2024-04-02 06:54:10 -04:00
wsor4035
0d5cab9455
replace hardcoded game agnostic texture support and homedecor.textures to xcompat (#66)
* switch existing to xcompat textures

* replace the rest of the hard coded texture conversions to use homedecor.textures
2024-03-03 15:52:58 -05:00
Luke aka SwissalpS
080551e647
Is ground content (#64)
see https://github.com/pandorabox-io/pandorabox.io/issues/836
2024-02-29 18:49:24 -05:00
wsor4035
280924c02b
add in xcompat for game agnostic handling dry (#63) 2024-02-25 12:04:20 -05:00
luk3yx
52f7c54702 Fix particlespawner removal when digging fancy fire 2023-10-27 10:30:10 +13:00
Niklp
951f77491c
Fix use of deprecated get_look_yaw() (#62) 2023-09-24 21:19:47 +10:00
Niklp
46c71131c5
Fix wrong nodenames caused by last commit (#61) 2023-08-22 18:11:31 -04:00
Niklp
80b4f242e0
Make (almost) all items translatable (#60)
* Make all items translatable

* add more
2023-08-21 18:47:26 -04:00
Niklp
ecd67f0eab
Update translations (#59)
* Update translations

* Fix usage of translation api in log message

* Fix %s usage in itemframes.it.tr
2023-08-20 17:54:38 -04:00
Niklp
60d63cda6f
Fix translation errors reported by i18ncheck.py (#58) 2023-08-15 18:28:39 -04:00
Niklp
89703525e6
replace ABMs w/ nodetimers (#56)
* replace ABMs w/ nodetimers

* ux fixes

* disable oven properly
2023-06-10 21:56:54 -04:00
Mihin Dissanayake
2c08c1f97b
Fix lockable items having the same craft as the normal version (#55) 2023-06-01 21:59:14 -04:00
taylorskalyo
6bbaa7491d
fix burnable wood large table top (#54) 2023-05-07 13:48:41 -04:00
taylorskalyo
b4297d68a0
Fix uncraftable items (#53)
* fix large square table top recipes (#41)

* fix cabinet with drawers recipes (#41)
2023-05-07 13:33:30 -04:00
Niklp
77f2b0e05b
Fix ugly looking fakegrass (#51) 2023-02-21 21:30:11 +11:00
wsor4035
9c7eb2e502
fix https://github.com/mt-mods/homedecor_modpack/issues/50/ - swap l to 1 in translations 2023-02-20 19:54:33 -05:00
unknown
55bbd478d9 fix all or edge cases for https://github.com/mt-mods/homedecor_modpack/issues/49 not caught by the last commit 2022-11-30 17:48:28 -05:00
unknown
0384943a0a fix https://github.com/mt-mods/homedecor_modpack/issues/49 2022-11-26 21:00:02 -05:00
superfloh247
33710f710b
restart smoke particle effects on reload (#48)
* restart smoke particle effects on reload

* restore table in fake_fire:reload_particles

* Update fake_fire/init.lua

Co-authored-by: OgelGames <olliverdc28@gmail.com>

Co-authored-by: OgelGames <olliverdc28@gmail.com>
2022-11-19 08:34:36 -05:00
unknown
8893d66dc6 fix https://github.com/mt-mods/dreambuilder_game/issues/20 - quote on quote improper dor rotation which turned out to be badly applied model work around 2022-10-20 21:59:11 -04:00
unknown
a598fa3067 add not in creative inventory group to bed extended since it is made by placing a bed over top of another 2022-09-02 12:04:03 -04:00
Niklp
6fa1bbeb1c
fix wrong collision box for homedecor skylights (#45) 2022-08-19 14:15:47 -04:00
unknown
0403f47f86 fix https://github.com/mt-mods/homedecor_modpack/issues/44 2022-08-11 23:37:26 -04:00
wsor4035
0f57b2268a
fix some seats (#43) 2022-08-11 21:31:20 -04:00
unknown
806c8c5e78 last craft 2022-08-03 14:25:51 +02:00
unknown
37bc0ed58d add more crafts 2022-08-03 14:25:51 +02:00
unknown
0a605bdb96 fix some crafts 2022-08-03 14:25:51 +02:00
fluxionary
97d4c65230 remove weird, redundant loop
the removed loop was doing the same thing as the `stairsplus:register_alias_all("moreblocks", "tar", "building_blocks", "Tar")` line below, but causing a crash when using the (not yet pulled) new stairsplus API https://github.com/minetest-mods/moreblocks/pull/191
2022-06-24 18:16:49 +02:00
Niklp
acf17f2ba4
Replace deprecated functions (#37) 2022-06-18 18:44:02 +10:00
unknown
5ffdc26673 fix https://github.com/mt-mods/homedecor_modpack/issues/34 2022-05-16 22:41:02 -04:00
OgelGames
70381161fd fix recipes broken by 546cd711
fixes #35
2022-05-14 21:49:02 +10:00
wsor4035
fe1b9a1ef1
remove obsolete and broken shell script 2022-05-03 15:22:48 -04:00
wsor4035
546cd7110f
make homedecor game agnostic (#28)
* make materials.lua with hades, minetest game, farlands items

* make textures file for central handling

* make mods game agnostic

* take out the trash

* handle multiple seats in sofas

* add github luacheck workflow and various luacheck fixes

* add fluxionary scope creep

* fix devtest breaking right to a name policy

Co-authored-by: wsor4035 <24964441+wsor4035@users.noreply.github.com>
Co-authored-by: SFENCE <sfence.software@gmail.com>
2022-05-03 15:21:14 -04:00
wsor4035
3ba59dc2d5
fix almost all warning spam (#26) 2022-03-29 07:44:05 +02:00
bell07
2f0e52f978
add skinsdb hand support for wardrobe skins (#24)
* add skinsdb hand support for wardrobe skins

* add compatibility to previous skinsdb version
2022-03-06 12:20:18 -05:00
wsor4035
694bfe5fe7
namespace plasmascreen and inbox (#22) 2022-02-14 17:54:32 -05:00
wsor4035
769e14fd11
refactor doors code (#21) 2022-02-11 15:44:45 -05:00
wsor4035
16bcc35ba2
remove legacy files 2022-02-10 20:26:41 -05:00
wsor4035
0c2271fa46
fixes warning spam (#20)
* fix fake fire warnings

* fix hd 3d extras warnings

* fix hd climate control warnings

* fix hd clocks warnings

* fix hd cobweb warnings

* fix hd doors/gates warnings

* fix hd exterior warnings

* fix hd fences warnings

* fix hd gastronomy warnings

* fix hd kitchen missing dependency

* fix hd office warnings

* fix hd roofing warnings

* fix hd table warnings

* fix hd trash cans warnings

* fix hd wardrobe warnings

* remove legacy hack
2022-02-07 08:18:17 -05:00
nixnoxus
d68e90f017
add hopper support (#18) 2022-02-03 18:40:38 -05:00
wsor4035
a8fceb249d
Merge pull request #16 from mt-mods/stairs
drop stairs api support and fix use_texture_alpha for stairs
2021-11-28 00:22:31 -05:00
unknown
21ae9f8c17 drop stairs api support and fix use_texture_alpha for stairs 2021-11-27 23:43:59 -05:00
unknown
63ad77e242 make beds sleepable https://github.com/mt-mods/homedecor_modpack/issues/13 2021-11-27 20:51:47 -05:00
unknown
32a32fa003 fix health expliot https://github.com/mt-mods/homedecor_modpack/issues/14 2021-11-27 20:43:25 -05:00
unknown
d9c42344ab fix removing item with inv contents https://github.com/mt-mods/homedecor_modpack/issues/3 2021-11-27 20:32:13 -05:00
unknown
f6f6f3a3c3 fix depreciated setyaw call https://github.com/mt-mods/homedecor_modpack/issues/7 2021-11-27 19:56:36 -05:00
Vanessa Dannenberg
f1dc68ab21 Merge branch 'master' into 'master'
Fix broken kitchen cabinet recipes

Closes #39

See merge request VanessaE/homedecor_modpack!22
2021-05-18 06:58:39 +00:00
OgelGames
240c735225 fix broken kitchen cabinet recipes 2021-05-18 16:47:44 +10:00
Vanessa Dannenberg
b6c64c6314 fix broken LBM reference for locked kitchen cabinets 2021-04-15 06:47:47 -04:00
Vanessa Dannenberg
790c03213d fix not-locked drawers not showing up in creative inv
(well not showing up in Unified Inventory anyway :-P )
2021-03-30 21:18:45 -04:00
Vanessa Dannenberg
81e0d4ea7e fix faucets/taps not working on kitchen sinks anymore 2021-03-30 20:55:34 -04:00
Vanessa Dannenberg
9ffe2b7d69 move some alises to their proper places. 2021-03-26 23:29:20 -04:00
Vanessa Dannenberg
0268767ac9 remove unused recipes from furniture mod
some deleted altogether as redundant,
others moved to the proper mods.
2021-03-26 23:27:13 -04:00
Vanessa Dannenberg
950210a6e3 move old 3dforniture-style table into the proper mod 2021-03-26 23:17:21 -04:00
Vanessa Dannenberg
c70fb1a1ed auto-combine tabletops with legs
If the player places table legs, and then places a tabletop while
pointing at the legs (from any side), the table and legs will
automatically be combined into a single node that can then have
something placed on top like usual.

This also gets rid of those redundant "utility" table nodes, since
these have always basically just been a set of legs, and a copy
of the small square wood table.  Now they're merged into the above
feature, and aliased as appropriate.

Tecccccccccchhnically, wood legs should only have been allowed to
combine with wooden tabletops...  then I googled around a bit,
and found a number of glass tables with wooden legs that were
surprisingly similar to the in-game versions.
2021-03-26 23:08:06 -04:00
Vanessa Dannenberg
40cd59aa24 get rid of old table conversion abms 2021-03-26 17:02:25 -04:00
Vanessa Dannenberg
da1f2b1430 use swap_node(), not set_node() 2021-03-26 09:44:02 -04:00
Vanessa Dannenberg
e7995ce981 Add kitchen cabinet with drawers
and redesign the other kitchen cabinet textures
to coordinate with it.
2021-03-26 06:43:05 -04:00
Vanessa Dannenberg
0fdc8557b3 use inventorycube images for wield/inv
because the engine doesn't allow a mod to rotate/flip
the actual rendered item/model.
2021-03-26 05:53:34 -04:00
Vanessa Dannenberg
40cfabb38a Keep the "colored" nodes out of creative inv
(redundant)
2021-03-26 05:40:59 -04:00
Vanessa Dannenberg
44542cb6a9 allow colorization of homedecor kitchen cabinets
uses "fake" wallmounted mode, 32 colors.
2021-03-26 02:15:10 -04:00
Vanessa Dannenberg
eeec27f60b adjust ovens' formspecs to match the layout of default furnace 2021-03-04 15:14:52 -05:00
Vanessa Dannenberg
bef62eef1e move workbench/tool cabinet, beer tap and mug, and soda machine to home_workshop_modpack 2021-03-02 06:33:55 -05:00
Vanessa Dannenberg
18ac518389 move computers mod out of homedecor
and into home_workshop_modpack

You can find that modpack here:
https://gitlab.com/VanessaE/home_workshop_modpack
2021-03-02 03:25:02 -05:00
Vanessa Dannenberg
0e4687e236 move the regular printer into computers.lua 2021-03-02 03:15:04 -05:00
Vanessa Dannenberg
0e8a213185 move all of the gaming-specific items into their own file 2021-03-02 03:09:13 -05:00
Vanessa Dannenberg
3b5b6adfda delete some unused images 2021-03-02 03:04:19 -05:00
Vanessa Dannenberg
9cc6f90778 rename computer mod to "computers"
and fix all the image and model filenames that didn't conform before.
aliases are provided for the old nodes
2021-03-02 03:03:12 -05:00
Vanessa Dannenberg
90da464add added a CoreXY-style 3d printer
minor tweaks to the bedflinger to accommodate altered base image
2021-03-01 20:20:11 -05:00
Vanessa Dannenberg
cc0887cfb4 fix crash when sand is dropped on a book 2021-02-25 02:33:33 -05:00
Vanessa Dannenberg
968d706e9b Don't allow engine to add the implicit "Proceed" button
(on lights anyway;
this change makes it possible to theme the formspec)
2021-02-25 02:13:21 -05:00
Vanessa Dannenberg
bc55cde65c Merge branch 'master' into 'master'
Fix digging of locked inventory nodes

Closes #34 and #33

See merge request VanessaE/homedecor_modpack!21
2021-01-30 13:45:35 +00:00
OgelGames
e049380408 fix digging of locked inventory nodes 2021-01-31 00:02:17 +11:00
Vanessa Dannenberg
e57c4a55e6 Merge branch 'littlefix' into 'master'
homedecor_exterior locale fix and homedecor_books mod.conf

See merge request VanessaE/homedecor_modpack!20
2021-01-26 12:55:28 +00:00
Nathaniel Freeman
e73b4affe7 homedecor books can work without unifieddyes 2021-01-26 09:34:23 +00:00
Nathaniel Freeman
62cdcc5795 ES locale fix 2021-01-26 09:33:32 +00:00
Vanessa Dannenberg
fd596ea83b Merge branch 'CompressPlasma' into 'master'
# Compress Plasma Animations

See merge request VanessaE/homedecor_modpack!19
2021-01-23 16:36:29 +00:00
ExeVirus
9ab3cb361f # Compress Plasma Animations
Reduced the plasma animations from 64x64 to 48x48 each. Updated the aspect ratios in the .lua files referencing them.

Total Reduction:
2021-01-23 10:05:24 -05:00
Vanessa Dannenberg
4b05c86486 Merge branch 'Compression' into 'master'
# Compression Commit

See merge request VanessaE/homedecor_modpack!18
2021-01-23 12:33:53 +00:00
ExeVirus
f9ca183f2a # Compression Commit
This commit performs both lossless and lossy compression on every .obj and .png in homedecor. The .png files were all 100% losslessly compressed using ect.exe and optipng.exe (more details below) at maximum settings. The .obj files were lossy-compressed so that comments were removed, trailing 000's were removed and all numbers rounded to 3 decimal places max. Blender exports at 6 decimal places but for minetest, 3 decimal places is the absolute maximum a person with anything under a 256K screen will ever need.

## Results
```
Original entire modpack size: 6343.5 KB
New entire modpack size:      5312.2 KB
Total Reduction:              1031.3 KB  (16.3% less)
```
Please note that actual media size is likely more like 4,500 KB so media reduction is more around 20-25%.

## Details / What actions were actually performed

Used these programs:

https://github.com/ExeVirus/Compress-Obj

https://sourceforge.net/projects/optipng/

https://github.com/fhanau/Efficient-Compression-Tool

Ran this command on every .obj: (fast)

```
luajit.exe compress.lua -f <file> -precision 3
```

Ran these commands on every .png: (slow)
```
ect.exe  -9 -strip --allfilters-b <file>
optipng.exe -o7 -strip all -clobber <file>
```

Note that for future compression, I recommend only using optipng.exe instead of both. ECT can get better results but it takes a LOT longer and only ever saves another 1-2% of the file size. Not worth an extra 10-20 seconds per texture file in my opinion.

## Time spent

Roughly 2 Hours from start to finish + commit + PR
2021-01-23 07:28:20 -05:00
Vanessa Dannenberg
a57723df7d Merge branch 'fix-recipies-groups' into 'master'
Update recipies to contain groups

See merge request VanessaE/homedecor_modpack!17
2020-12-01 23:45:49 +00:00
Peter Nerlich
af808c7586 update recipies to contain groups instead of concrete items: wardrobe, filing_cabinet, desk, table, woodglass, fakegrass 2020-12-02 00:32:16 +01:00
Vanessa Dannenberg
99d5d96113 Merge branch 'master' into 'master'
add connection to direct top node (0;1;0) in rules_alldir of homedecor_lightning/init.lua

See merge request VanessaE/homedecor_modpack!16
2020-11-19 20:29:59 +00:00
Sebastian Lobinger
93bf5d76ae reorder rules_alldir in homedecor_lightning/init.lua so it can read by y-axis and then line by line of 2d coordinates
if you express the connections in ascii where N is the Node 1 is connected and 0 is not connected:
```
y+0: 010
     1N1
     010

y+1: 010
     111
     010

y-1: 010
     111
     010
```
This code structure is more easy to read / a very close representation of the sketched layers.
2020-11-19 16:41:12 +00:00
Sebastian Lobinger
ec06010320 add connection to direct top node (0;1;0) in rules_alldir of homedecor_lightning/init.lua
This allows the rope_light_on_ceiling node to be connected with mesecon in a natural manner.
2020-11-19 16:17:28 +00:00
VanessaE
96a0862833 fixed doorbell recipe
fixes #32
2020-11-18 11:41:19 -05:00
Vanessa Dannenberg
77bb9636bc Merge branch 'showItemDescription' into 'master'
improve info with fallback

See merge request VanessaE/homedecor_modpack!15
2020-10-14 10:22:12 +00:00
SwissalpS
77af2295ae add description of item in frame / on pedestal
lets players brag about their tools and is useful
for better overview.
2020-10-14 10:22:12 +00:00
Vanessa Dannenberg
f2cd1fbd49 Merge branch 'master' into 'master'
Display item's description in infotext.

See merge request VanessaE/homedecor_modpack!14
2020-10-12 08:27:09 +00:00
SwissalpS
43de5b79ae Display item's description in infotext.
allows players to brag about their tool stats and is useful for better overview.
2020-10-12 06:23:01 +00:00
Vanessa Dannenberg
0678ecdafc Merge branch 'update_german_locale' into 'master'
Update german locale

See merge request VanessaE/homedecor_modpack!13
2020-10-09 04:57:41 +00:00
Gardon Klimm
ec1be77d7e Update german locale 2020-10-09 04:57:41 +00:00
VanessaE
1ecde7e278 fix #29 2020-09-15 09:20:08 -04:00
VanessaE
47a029923c opt depend on screwdriver in _common 2020-08-17 09:18:51 -04:00
Vanessa Dannenberg
c2122a634a Merge branch 'locale' into 'master'
MT5 translation

See merge request VanessaE/homedecor_modpack!12
2020-08-06 19:38:13 +00:00
Louis Royer
98b281aade Fix minetest warnings from homedecor_lighting
```
Undeclared global variable "mesecon" accessed at ...etest/mods/homedecor_modpack/homedecor_lighting/init.lua:852
Undeclared global variable "mesecon" accessed at ...etest/mods/homedecor_modpack/homedecor_lighting/init.lua:898
```
2020-08-05 16:10:33 +02:00
Louis Royer
1090c9139c .luacheckrc on each mod 2020-08-05 16:01:47 +02:00
Louis Royer
1c7ceb2e90 MT5 translation for homedecor_common
- Remove intllib support
- Fix luacheck warnings (except for 1 I don't know what to do)
- Removes homedecor_common/mt_game_beds_functions.lua (we can get the
function directly from `beds` mod instead of using an obsolete copie; I
have not re-enabled bed-sleeping, but it should work)
2020-08-05 16:01:47 +02:00
Louis Royer
f0ab7a6c78 MT5 translation for plasmascreen 2020-08-05 16:01:47 +02:00
Louis Royer
0800810530 MT5 translation for lavalamp 2020-08-05 16:01:47 +02:00
Louis Royer
b88d76d07f MT5 translation for itemframes
- Fix luacheck warnings
2020-08-05 16:01:47 +02:00
Louis Royer
3bc711b9e3 MT5 translation for inbox 2020-08-05 16:01:47 +02:00
Louis Royer
4a72054c78 MT5 translation for homedecor_windows_and_treatments 2020-08-05 16:01:47 +02:00
Louis Royer
204beaaaac MT5 translation for homedecor_wardrobe
- Add screwdriver to optional_depends
- Fix luacheck warnings
2020-08-05 16:01:47 +02:00
Louis Royer
f7412c6191 MT5 translation for homedecor_trash_cans 2020-08-05 16:01:47 +02:00
Louis Royer
0e52553b8a MT5 translation for homedecor_tables
- Fix luacheck warnings
2020-08-05 16:01:47 +02:00
Louis Royer
a9809998bf MT5 translation for homedecor_seating
- Add screwdriver to optional_depends
- Fix luacheck warnings
2020-08-05 16:01:47 +02:00
Louis Royer
ea6e75fa6a MT5 translation for homedecor_roofing
- Fix luacheck warnings
2020-08-05 16:01:47 +02:00
Louis Royer
661636bb5c MT5 translation for homedecor_pictures_and_paintings 2020-08-05 16:01:47 +02:00
Louis Royer
77df83e161 MT5 translation for homedecor_office 2020-08-05 16:01:47 +02:00
Louis Royer
92649fad62 MT5 translation for homedecor_misc
- Add screwdriver to optional_depends
- Fix luacheck warnings
- Fix indentation
2020-08-05 16:01:47 +02:00
Louis Royer
e3ec030468 MT5 translation for homedecor_lighting
- Add screwdriver to optional_depends
- Fix luacheck warnings (mostly removing unused/legacy stuff)
Note: sm_light used to be a light_source value for lattice small lantern,
but when this was changed, only half of the lines were deleted
(including the declaration). The other half has been preserved because
it was part of an if-arm that "seems" unrelated (but it only seems).
- Improve french translation
2020-08-05 16:01:39 +02:00
Louis Royer
4f23eeec3e MT5 translation for homedecor_laundry
- Add french translation
2020-08-05 16:01:39 +02:00
Louis Royer
efba9e0648 MT5 translation for homedecor_kitchen
- Add screwdriver in optional_depends
- Fix luacheck warnings
2020-08-05 16:01:39 +02:00
Louis Royer
eae0f6cb3c MT5 translation for homedecor_gastronomy
- Add screwdriver in optional_depends
- Fix luacheck warning
- Improve french translation
2020-08-05 16:01:39 +02:00
Louis Royer
57d51e4596 MT5 translation for homedecor_furniture_medieval 2020-08-05 16:01:39 +02:00
Louis Royer
6f383c66b0 MT5 translation for homedecor_furniture 2020-08-05 16:01:39 +02:00
Louis Royer
9d28edc3ff MT5 translation for homedecor_foyer
- Add screwdriver in optional_depends
2020-08-05 16:01:39 +02:00
Louis Royer
22e4e0c42b MT5 translation for homedecor_fences
- Update .luacheckrc to allow signs_lib in globals since the current API
doesn't allow to have it read only (added a FIXME, needs a addition to
signs_lib, ping @VanessaE)
2020-08-05 16:01:39 +02:00
Louis Royer
1675a93fec MT5 translation for homedecor_exterior
- add screwdriver in optional_depends
- fixes luacheck warnings
- french translation
2020-08-05 16:01:32 +02:00
Louis Royer
facee91684 MT5 translaton for homedecor_electronics
- Fix indentation
- Remove duplicated craft
2020-08-05 16:01:32 +02:00
Louis Royer
07e42fb2f5 MT5 translation for homedecor_electrical
- fixes luacheck warnings
2020-08-05 16:01:32 +02:00
Louis Royer
512ae9ec67 MT5 translation for homedecor_doors_and_gates
- add screwdriver optional_depends
- fix luacheck warnings
- french translation
2020-08-05 16:01:18 +02:00
Louis Royer
4d6458b684 MT5 translation for homedecor_cobweb
- luacheck warnings fix
`homedecor_cobweb/init.lua:104:10: setting read-only field rotate_cobweb of global homedecor`
2020-08-05 16:01:18 +02:00
Louis Royer
6b18347fb0 MT5 translation for homedecor_clocks
- add screwdriver in optional_depends
- improve french translation
2020-08-05 16:01:18 +02:00
Louis Royer
c1d9cc1de2 MT5 translation for homedecor_climate_control
- Add screwdriver in optional_depends
- Add screwdriver in .luacheckrc
2020-08-05 16:01:18 +02:00
Louis Royer
fc28c4385a MT5 translaton for homedecor_books
Separate translation of colors because it depends of context for some
languages (eg. french); improved translation of colors in french.
2020-08-05 16:01:10 +02:00
Louis Royer
c6e35a4e5c MT5 translation for homedecor_bedroom
- add screwdriver in optional_depends
- Fix luacheck warnings
2020-08-05 15:35:36 +02:00
Louis Royer
ea73ff6f6e MT5 translation for homedecor_bathroom
- add screwdriver in optional_depends
- Fixes luacheck warnings
2020-08-05 15:35:36 +02:00
Louis Royer
1faa55a89e mod.conf for homedecor_3d_extras 2020-08-05 15:35:36 +02:00
Louis Royer
2b7905e12d MT5 translation for fake_fire
- remove homedecor_common from depends since not required anymore
- remove screwdriver line
- luacheck warnings fixes
```
    init.lua:27:8: variable id was previously defined on line 7
    init.lua:47:8: variable id was previously defined on line 27
    init.lua:201:9: unused variable meta
```
2020-08-05 15:35:36 +02:00
Louis Royer
55e1714cac MT5 translation for computer mod
- remove homedecor_common from depends since no longer required
- luacheck line length fix
- add screwdriver in optional_depends
2020-08-05 15:35:36 +02:00
Louis Royer
9a814da186 MT5 translation for building_blocks mod
- update .luacheckrc because stairs is used
- remove dependency to homedecor_common (not needed anymore)
- improve french translation
2020-08-05 15:35:22 +02:00
Vanessa Dannenberg
b72c15076e Merge branch 'keys_api' into 'master'
Keys api

See merge request VanessaE/homedecor_modpack!11
2020-08-04 14:36:38 +00:00
Louis Royer
18744ee66d Fix lines length related issues in homedecor_common 2020-08-04 16:16:36 +02:00
Louis Royer
7f67f4a035 Add on_key_use and on_skeleton_key_use api for locked nodes 2020-08-04 16:00:23 +02:00
Louis Royer
8417cddf71 Add mod.conf for homedecor_common 2020-08-04 16:00:00 +02:00
Vanessa Dannenberg
117bcddab9 Merge branch 'undefined' into 'master'
Add Chinese Translation

See merge request VanessaE/homedecor_modpack!10
2020-08-03 06:14:05 +00:00
wzy2006
377fb58c38 Upload New File 2020-07-19 03:11:52 +00:00
VanessaE
5aecf5f2c7 move some "japanese" files to their proper sub-mods
fixes #24
2020-06-04 12:32:10 -04:00
1350 changed files with 87168 additions and 114350 deletions

11
.github/workflows/luacheck.yml vendored Normal file
View File

@ -0,0 +1,11 @@
name: luacheck
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: Roang-zero1/factorio-mod-luacheck@master
with:
luacheckrc_url: ""

View File

@ -1,28 +1,44 @@
unused_args = false
allow_defined_top = true
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"intllib",
"default",
"stairsplus",
"signs_lib",
"beds",
"technic",
"mesecon",
"unifieddyes",
"creative",
"homedecor_i18n",
}
globals = {
"homedecor",
"homedecor_lighting",
"homedecor_windows_and_treatments",
"homedecor_roofing",
"homedecor_misc",
"homedecor_exterior",
"homedecor_electrical",
"homedecor_cobweb",
"lavalamp",
"lrfurn",
"signs_lib",
"homedecor_doors_and_gates",
-- mod-deps
"armor",
xcompat = {fields = {"player"}},
}
read_globals = {
"minetest", "core",
"vector", "ItemStack",
"dump",
-- Stdlib
string = {fields = {"split", "trim"}},
table = {fields = {"copy", "getn"}},
-- mod-deps
"default",
"unifieddyes",
"player_api",
"screwdriver",
"hopper",
"mesecon",
"skins",
"stairsplus",
"creative",
"doors",
"i3",
"xcompat",
}

8
README
View File

@ -1,8 +0,0 @@
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.
Dependencies: unifieddyes and a Minetest engine build newer than 2017-01-23.
Recommends: signs_lib, windmill, moreblocks, unified_inventory.

28
README.md Normal file
View File

@ -0,0 +1,28 @@
# Minetest Homedecor Modpack
[![ContentDB](https://content.minetest.net/packages/VanessaE/homedecor_modpack/shields/downloads/)](https://content.minetest.net/packages/VanessaE/homedecor_modpack/)
A fairly feature-filled home decor modpack that is game agnostic.
## About
first class support for:
* Minetest Game
* Farlands Reloaded
* Hades
* Mineclone2, Mineclone5
## Links
* [Github](https://github.com/mt-mods/homedecor_modpack)
* [Contentdb](https://content.minetest.net/packages/VanessaE/homedecor_modpack/)
* [Forums](https://forum.minetest.net/viewtopic.php?f=11&t=2041)
# Setup
required:
* [Unifieddyes](https://github.com/mt-mods/unifieddyes)
* [Basic Materials](https://github.com/mt-mods/basic_materials)
* [xcompat](https://github.com/mt-mods/xcompat)

View File

@ -1,19 +0,0 @@
{
"name": "homedecor_modpack",
"description": "This mod adds a whole bunch of new items to Minetest suitable for decorating inside and outside a home.",
"keywords": [
"building",
"cosmetic",
"homedecor modpack",
"homedecor_modpack"
],
"homepage": "http://daconcepts.com/vanessa/hobbies/minetest/homedecor-crafting-guide/homedecor-craft-guide.html",
"project": "https://github.com/minetest-mods/homedecor_modpack",
"forum": "http://forum.minetest.net/viewtopic.php?f=11&t=2041",
"screenshots": [
"http://daconcepts.com/vanessa/hobbies/minetest/screenshots/homedecor1.png"
],
"authors": [
"VanessaE"
]
}

View File

@ -1,4 +1,4 @@
local S = homedecor.gettext
local S = minetest.get_translator("building_blocks")
if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then
minetest.register_alias("building_blocks:slab_tar", "stairs:slab_Tar")
@ -8,16 +8,9 @@ if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then
end
if minetest.get_modpath("moreblocks") then
minetest.register_alias_force("moreblocks:tar", "building_blocks:Tar")
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
@ -40,8 +33,11 @@ if not minetest.get_modpath("technic") then
description = S("Granite"),
tiles = { "technic_granite.png" },
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=1, dig_stone=2, pickaxey=5},
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_stone_defaults",
},
})
minetest.register_craft({
output = "technic:granite 9",

View File

@ -1,5 +0,0 @@
default
homedecor_common
moreblocks?
gloopblocks?
stairs?

View File

@ -1,4 +1,3 @@
local S = homedecor.gettext
local modpath = minetest.get_modpath("building_blocks")
dofile(modpath.."/alias.lua")

View File

@ -0,0 +1,20 @@
# textdomain: building_blocks
Granite=Granit
Grate=Rost
Streak Free Glass=Schlierenfreies Glas
Wood Framed Glass=Holzrahmenglas
Adobe=Adobe
Fake Grass=Falsches Gras
Hardwood=Hartholz
Roof block=Dachblock
Tar=Teer
Marble=Marmor
Brobble Spread=Ziesterboden
Gravel Spread=Kiesboden
Tarmac Spread=Asphaltboden
Terrycloth towel=Frottiertuch
Chess board tiling=Schachbrettkacheln
Fireplace=Kamin
Small bundle of sticks=Kleines Bündel Stöcke
Tar base=Teerbase
Tar Knife=Teermesser

View File

@ -0,0 +1,20 @@
# textdomain: building_blocks
Granite=Granito
Grate=Reja
Streak Free Glass=Vídrio sin rayas
Wood Framed Glass=Vídrio enmarcado en madera
Adobe=Adobe
Fake Grass=Hierba falsa
Hardwood=Madera dura
Roof block=Bloque de techo
Tar=Alquitrán
Marble=Mármol
Brobble Spread=Mezcla de Ladroquines
Gravel Spread=Mezcla de gravilla
Tarmac Spread=Mezcla de asfalto
Terrycloth towel=Toalla
Chess board tiling=Azulejos de ajedrez
Fireplace=Chimenea
Small bundle of sticks=Manojo de palitos
Tar base=Base de alquitrán
Tar Knife=Cuchillo de alquitrán

View File

@ -0,0 +1,20 @@
# textdomain: building_blocks
Granite=Granit
Grate=Grille
Streak Free Glass=Verre anti-rayures
Wood Framed Glass=Verre encadré de bois
Adobe=Pisé
Fake Grass=Herbe synthétique
Hardwood=Bois dur (feuillu)
Roof block=Bloc de toit
Tar=Goudron
Marble=Marbre
Brobble Spread=Tapis rouge
Gravel Spread=Tapis de gravier
Tarmac Spread=Tapis de goudron
Terrycloth towel=Serviette éponge
Chess board tiling=Pavage en échiquier
Fireplace=Cheminée
Small bundle of sticks=Petit fagot de brindilles
Tar base=Pâte de goudron
Tar Knife=Couteau à goudron

View File

@ -0,0 +1,20 @@
# textdomain: building_blocks
Granite=Granit
Grate=Jeriji
Streak Free Glass=Kaca Bebas Calar
Wood Framed Glass=Kaca Berbingkai Kayu
Adobe=Adob
Fake Grass=Rumput Tiruan
Hardwood=Kayu Keras
Roof block=Blok Bumbung
Tar=Tar
Marble=Marmar
Brobble Spread=Sebaran Batu Merah
Gravel Spread=Sebaran Kelikir
Tarmac Spread=Sebaran Tar
Terrycloth towel=Kain Tuala
Chess board tiling=Jubin Papan Catur
Fireplace=Pendiangan
Small bundle of sticks=Seberkas Kecil Serpihan Kayu
Tar base=Campuran Tar
Tar Knife=Pisau Tar

View File

@ -0,0 +1,20 @@
# textdomain: building_blocks
Granite=Granito
Grate=Grelha
Streak Free Glass=Vidro Sem Riscos
Wood Framed Glass=Vidro com Bordas de Madeira
Adobe=Argila
Fake Grass=Grama Falsa
Hardwood=Madeira
Roof block=Bloco de telhado
Tar=Alcatrão
Marble=Mármore
Brobble Spread=Calçado
Gravel Spread=Espalhamento de Cascalho
Tarmac Spread=Espalhamento das Estradas
Terrycloth towel=Toalha de Roupinha
Chess board tiling=Revestimento de xadrez
Fireplace=Lareira
Small bundle of sticks=Pequeno amontoado de gravetos
Tar base=Base para alcatrão
Tar Knife=Faca de Alcatrão

View File

@ -0,0 +1,20 @@
# textdomain: building_blocks
Granite=Granito
Grate=Grelha
Streak Free Glass=Vidro Sem Riscos
Wood Framed Glass=Vidro com Bordas de Madeira
Adobe=Argila
Fake Grass=Grama Falsa
Hardwood=Madeira
Roof block=Bloco de telhado
Tar=Alcatrão
Marble=Mármore
Brobble Spread=Calçado
Gravel Spread=Espalhamento de Cascalho
Tarmac Spread=Espalhamento das Estradas
Terrycloth towel=Toalha de Roupinha
Chess board tiling=Revestimento de xadrez
Fireplace=Lareira
Small bundle of sticks=Pequeno amontoado de gravetos
Tar base=Base para alcatrão
Tar Knife=Faca de Alcatrão

View File

@ -0,0 +1,20 @@
# textdomain: building_blocks
Granite=Гранит
Grate=Каминная решётка
Streak Free Glass=Стекло без стыков
Wood Framed Glass=Деревянное окно
Adobe=Саман
Fake Grass=Псевдо трава
Hardwood=Твёрдая древесина
Roof block=Кровельный блок
Tar=Смола
Marble=Мрамор
Brobble Spread=Настил кирпичного булыжника
Gravel Spread=Настил гравия
Tarmac Spread=Покрытие гудронной смолой
Terrycloth towel=Махровое полотенце
Chess board tiling=Шахматная плитка
Fireplace=Камин
Small bundle of sticks=Небольшая связка палок
Tar base=Смоляная основа
Tar Knife=Смоляной нож

View File

@ -0,0 +1,20 @@
# textdomain: building_blocks
Granite=花岗岩
Grate=磨碎
Streak Free Glass=无条纹玻璃
Wood Framed Glass=木框玻璃
Adobe=土砖
Fake Grass=塑料草
Hardwood=硬木
Roof block=天台
Tar=焦油
Marble=大理石
Brobble Spread=石砖路面
Gravel Spread=碎石路面
Tarmac Spread=柏油路面
Terrycloth towel=毛巾
Chess board tiling=棋盘铺贴
Fireplace=壁炉
Small bundle of sticks=小捆棍子
Tar base=焦油基
Tar Knife=焦油刀

View File

@ -0,0 +1,20 @@
# textdomain: building_blocks
Granite=
Grate=
Streak Free Glass=
Wood Framed Glass=
Adobe=
Fake Grass=
Hardwood=
Roof block=
Tar=
Marble=
Brobble Spread=
Gravel Spread=
Tarmac Spread=
Terrycloth towel=
Chess board tiling=
Fireplace=
Small bundle of sticks=
Tar base=
Tar Knife=

3
building_blocks/mod.conf Normal file
View File

@ -0,0 +1,3 @@
name = building_blocks
depends = homedecor_common
optional_depends = moreblocks, gloopblocks, stairs, default

View File

@ -1,39 +1,29 @@
local S = homedecor.gettext
local stairs_groups_names = {"cracky","choppy","flammable","crumbly","snappy"}
local S = minetest.get_translator("building_blocks")
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]
if def.groups and (def.groups.crumbly or def.groups.oddly_breakable_by_hand) then
def.groups["handy"]=1
def._mcl_hardness=0.6
elseif def.groups and (def.groups.snappy or def.groups.choppy) then
def.groups["axey"]=5
def._mcl_hardness=1.6
elseif def.groups and (def.groups.cracky or def.groups.crumbly) then
def.groups["pickaxey"]=5
def._mcl_hardness=1.6
end
def.is_ground_content = def.is_ground_content == true
minetest.register_node(nodename, def)
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
local mod, name = nodename:match("(.*):(.*)")
stairsplus:register_all(mod, name, nodename, def)
minetest.register_alias("stairs:slab_" .. name, mod .. ":slab_" .. name)
minetest.register_alias("stairs:stair_" .. name, mod .. ":stair_" .. name)
minetest.register_alias("stairs:stair_inner_" .. name, mod .. ":stair_" .. name .. "_inner")
minetest.register_alias("stairs:stair_outer_" .. name, mod .. ":stair_" .. name .. "_outer")
end
end
@ -43,9 +33,12 @@ building_blocks_stairs("building_blocks:grate", {
tiles = {"building_blocks_grate.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_metal_defaults(),
is_ground_content = false,
use_texture_alpha = "clip",
groups = {cracky=1, dig_generic=3},
_sound_def = {
key = "node_sound_metal_defaults",
},
})
building_blocks_stairs("building_blocks:smoothglass", {
drawtype = "glasslike",
@ -53,9 +46,12 @@ building_blocks_stairs("building_blocks:smoothglass", {
tiles = {"building_blocks_sglass.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
is_ground_content = false,
use_texture_alpha = "clip",
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
_sound_def = {
key = "node_sound_glass_defaults",
},
})
building_blocks_stairs("building_blocks:woodglass", {
drawtype = "glasslike",
@ -63,54 +59,72 @@ building_blocks_stairs("building_blocks:woodglass", {
tiles = {"building_blocks_wglass.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
is_ground_content = false,
use_texture_alpha = "clip",
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
_sound_def = {
key = "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(),
is_ground_content = false,
groups = {crumbly=3, dig_stone=2},
_sound_def = {
key = "node_sound_stone_defaults",
},
})
local grasstex = {
homedecor.textures.grass.top,
homedecor.textures.grass.dirt,
homedecor.textures.grass.side
}
building_blocks_stairs("building_blocks:fakegrass", {
tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
tiles = grasstex,
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},
}),
is_ground_content = false,
groups = {crumbly=3, dig_sand=3},
_sound_def = {
key = "node_sound_dirt_defaults",
},
})
building_blocks_stairs("building_blocks:hardwood", {
tiles = {"building_blocks_hardwood.png"},
is_ground_content = true,
is_ground_content = false,
description = S("Hardwood"),
groups = {choppy=1,flammable=1},
sounds = default.node_sound_wood_defaults(),
groups = {choppy=1,flammable=1, dig_tree=1},
_sound_def = {
key = "node_sound_wood_defaults",
},
})
building_blocks_stairs("building_blocks:Roofing", {
tiles = {"building_blocks_Roofing.png"},
is_ground_content = true,
is_ground_content = false,
description = S("Roof block"),
groups = {snappy=3},
sounds = default.node_sound_stone_defaults(),
groups = {snappy=3, dig_generic=4},
_sound_def = {
key = "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(),
is_ground_content = false,
groups = {crumbly=1, tar_block = 1, dig_generic=4},
_sound_def = {
key = "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(),
is_ground_content = false,
groups = {cracky=3, marble = 1, dig_stone=2},
_sound_def = {
key = "node_sound_stone_defaults",
},
})
minetest.register_node("building_blocks:brobble_spread", {
@ -128,15 +142,17 @@ minetest.register_node("building_blocks:brobble_spread", {
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},
is_ground_content = false,
groups = {crumbly=3, dig_generic=4, handy=1},
_mcl_hardness=0.6
})
if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopblocks") then
local graveltex = homedecor.textures.gravel
minetest.register_node("building_blocks:gravel_spread", {
drawtype = "raillike",
description = S("Gravel Spread"),
tiles = {"default_gravel.png"},
tiles = {graveltex},
inventory_image = "building_blocks_gravel_spread_inv.png",
paramtype = "light",
walkable = false,
@ -146,12 +162,12 @@ if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopbloc
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},
}),
is_ground_content = false,
groups = {crumbly=2, dig_generic=4, handy=1},
_mcl_hardness=0.6,
_sound_def = {
key = "node_sound_dirt_defaults",
},
})
end
@ -168,9 +184,12 @@ minetest.register_node("building_blocks:Tarmac_spread", {
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(),
is_ground_content = false,
groups = {cracky=3, dig_generic=4, pickaxey=5},
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_dirt_defaults",
},
})
minetest.register_node("building_blocks:terrycloth_towel", {
drawtype = "raillike",
@ -185,8 +204,9 @@ minetest.register_node("building_blocks:terrycloth_towel", {
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},
is_ground_content = false,
groups = {crumbly=3, dig_generic=4, handy=1},
_mcl_hardness=0.6
})
minetest.register_node("building_blocks:BWtile", {
@ -208,8 +228,9 @@ minetest.register_node("building_blocks:BWtile", {
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},
is_ground_content = false,
groups = {crumbly=3, dig_generic=4, handy=1},
_mcl_hardness=0.6
})
minetest.register_node("building_blocks:Fireplace", {
@ -222,9 +243,12 @@ minetest.register_node("building_blocks:Fireplace", {
},
paramtype = "light",
paramtype2 = "facedir",
light_source = default.LIGHT_MAX,
light_source = minetest.LIGHT_MAX,
sunlight_propagates = true,
is_ground_content = true,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults(),
is_ground_content = false,
groups = {cracky=2, dig_generic=4, pickaxey=5},
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_stone_defaults",
},
})

View File

@ -1,4 +1,4 @@
local S = homedecor.gettext
local S = minetest.get_translator("building_blocks")
minetest.register_craftitem("building_blocks:sticks", {
description = S("Small bundle of sticks"),

View File

@ -1,4 +1,4 @@
local S = homedecor.gettext
local materials = homedecor.materials
if minetest.get_modpath("moreblocks") then
minetest.register_craft({
@ -22,15 +22,15 @@ end
minetest.register_craft({
output = 'building_blocks:Adobe 3',
recipe = {
{"default:sand"},
{"default:clay"},
{materials.sand},
{materials.clay_lump},
{"group:stick"},
}
})
minetest.register_craft({
output = 'building_blocks:brobble_spread 4',
recipe = {
{"default:brick", "default:cobble", "default:brick"},
{materials.brick, materials.cobble, materials.brick},
}
})
minetest.register_craft({
@ -43,21 +43,21 @@ minetest.register_craft({
minetest.register_craft({
output = 'building_blocks:fakegrass 2',
recipe = {
{'default:leaves'},
{"default:dirt"},
{'group:leaves'},
{materials.dirt},
}
})
minetest.register_craft({
output = 'building_blocks:Fireplace 1',
recipe = {
{"default:steel_ingot", "building_blocks:sticks", "default:steel_ingot"},
{materials.steel_ingot, "building_blocks:sticks", materials.steel_ingot},
}
})
minetest.register_craft({
output = 'building_blocks:grate 1',
recipe = {
{"default:steel_ingot", "default:steel_ingot"},
{"default:glass", "default:glass"},
{materials.steel_ingot, materials.steel_ingot},
{materials.glass_block, materials.glass_block},
}
})
@ -65,25 +65,27 @@ if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopbloc
minetest.register_craft({
output = 'building_blocks:gravel_spread 4',
recipe = {
{"default:gravel", "default:gravel", "default:gravel"},
{materials.gravel, materials.gravel, materials.gravel},
}
})
end
minetest.register_craft({
if minetest.get_modpath("default") then
minetest.register_craft({
output = 'building_blocks:hardwood 2',
recipe = {
{"default:wood", "default:junglewood"},
{"default:junglewood", "default:wood"},
}
})
minetest.register_craft({
})
minetest.register_craft({
output = 'building_blocks:hardwood 2',
recipe = {
{"default:junglewood", "default:wood"},
{"default:wood", "default:junglewood"},
}
})
})
end
minetest.register_craft({
output = 'building_blocks:knife 1',
recipe = {
@ -94,9 +96,9 @@ minetest.register_craft({
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"},
{materials.clay_lump, "group:tar_block", materials.clay_lump},
{"group:tar_block",materials.clay_lump, "group:tar_block"},
{materials.clay_lump, "group:tar_block",materials.clay_lump},
}
})
minetest.register_craft({
@ -115,15 +117,15 @@ minetest.register_craft({
minetest.register_craft({
output = 'building_blocks:tar_base 4',
recipe = {
{"default:coal_lump", "default:gravel"},
{"default:gravel", "default:coal_lump"}
{materials.coal_lump, materials.gravel},
{materials.gravel, materials.coal_lump}
}
})
minetest.register_craft({
output = 'building_blocks:tar_base 4',
recipe = {
{"default:gravel", "default:coal_lump"},
{"default:coal_lump", "default:gravel"}
{materials.gravel, materials.coal_lump},
{materials.coal_lump, materials.gravel}
}
})
minetest.register_craft({
@ -141,15 +143,15 @@ minetest.register_craft({
minetest.register_craft({
output = 'building_blocks:woodglass 1',
recipe = {
{"default:wood"},
{"default:glass"},
{"group:wood"},
{materials.glass_block},
}
})
minetest.register_craft({
type = "cooking",
output = "building_blocks:smoothglass",
recipe = "default:glass"
recipe = materials.glass_block
})
minetest.register_craft({
type = "cooking",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 B

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 568 B

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 324 B

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 381 B

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 B

After

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 581 B

After

Width:  |  Height:  |  Size: 532 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 302 B

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 B

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 B

After

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 450 B

After

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 280 B

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 118 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 409 B

After

Width:  |  Height:  |  Size: 362 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 502 B

After

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

After

Width:  |  Height:  |  Size: 751 B

View File

@ -1,38 +0,0 @@
version 0.2.3:
- Added animated router front
- Added all crafts for new items
version 0.2.2:
- Added printer
- Added server
version 0.2.1:
- Added modern tower pc
- Added wifi router
- Added flatscreen LCD and keyboard
Version 0.2.0:
- Added recipes.
- Partly re-written.
- Removed original baby tower (seemed out of place).
- You can now turn devices on and off by right-clicking.
- Mod is now on github.
Version 0.1.4:
- Added Admiral 64 & 128 (Commodore 64 & 128 lookalikes)
Version 0.1.3:
- Added SX Spectre (Sinclair ZX Spectrum lookalike)
- Added Pony SlayStation 2 (Sony PlayStation lookalike)
- Minor fixes to textures.
Version 0.1.2:
- Nodes now use the node box as selection box.
- Added Pony SlayStation (Sony PlayStation lookalike)
- Added Pony Vanio (Sony VAIO lookalike...err...just a generic laptop)
Version 0.1.1:
- Added SheFriend SOO (Amiga 500 lookalike)
Version 0.1.0:
- Initial Version only a baby tower.

View File

@ -1,43 +0,0 @@

Decorative Computers Mod for Minetest
by Diego Martínez <kaeza@users.sf.net>
How to install:
Unzip the archive an place it in minetest-base-directory/mods/minetest/
if you have a windows client or a linux run-in-place client. If you have
a linux system-wide instalation place it in ~/.minetest/mods/minetest/.
If you want to install this mod only in one world create the folder
worldmods/ in your worlddirectory.
For further information or help see:
http://wiki.minetest.com/wiki/Installing_Mods
How to use the mod:
For now just use creative mode or the `/give' or `/giveme' chat commands
to get the items.
These are the items currently defined by this mod:
computer:printer (printer scanner combo)
computer:server (rack server)
computer:tower (modern type)
computer:monitor (LCD with keyboard)
computer:router (wifi type)
computer:babytower
computer:shefriendSOO
computer:slaystation
computer:vanio
computer:spectre
computer:slaystation2
computer:admiral64
computer:admiral128
There's also a `computer:computer' alias to `computer:babytower'.
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
sirs/madammes that I forgot to mention (sorry, please remind me if it
was you ;) ).
See also:
http://minetest.net/

View File

@ -1,29 +0,0 @@
TO-DO List:
- New Nodes:
- Computers:
- Mainframe (well me have a rackserver now)
- My Computer :P
- Peripherals:
- Scanner ( well we have a printer/scanner combo now)
- Consoles:
- NES
- SNES
- DC
- Handhelds
- GB/C
- GBA
- Calculator
- Smartphone
- Animated screens
- Implement some kind of games (take code from `tetris' mod?). [It would be
nice if Minetest provided a "canvas" GUI widget :)].
- Get more suggestions :)

View File

@ -1,331 +0,0 @@
local S = homedecor.gettext
-- Amiga 500 lookalike
computer.register("computer:shefriendSOO", {
description = "SheFriendSOO",
tiles_off = { front=true },
node_box = computer.pixelnodebox(32, {
-- X Y Z W H L
{ 0, 0, 17, 32, 32, 12 }, -- Monitor Screen
{ 3, 3, 29, 26, 26, 3 }, -- Monitor Tube
{ 0, 0, 0, 32, 4, 17 } -- Keyboard
})
})
-- Some generic laptop
minetest.register_node("computer:vanio", {
drawtype = "mesh",
mesh = "computer_laptop.obj",
description = "Pony Vanio",
inventory_image = "computer_laptop_inv.png",
tiles = {"computer_laptop.png"},
paramtype = "light",
paramtype2 = "facedir",
light_source = 4,
groups = {snappy=3},
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.35, -0.5, -0.35, 0.35, 0.05, 0.35},
},
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computer:vanio_off"
minetest.set_node(pos, node)
return itemstack
end
})
minetest.register_node("computer:vanio_off", {
drawtype = "mesh",
mesh = "computer_laptop_closed.obj",
tiles = {"computer_laptop.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=3, not_in_creative_inventory=1},
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.35, -0.5, -0.35, 0.35, -0.4, 0.25},
},
drop = "computer:vanio",
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computer:vanio"
minetest.set_node(pos, node)
return itemstack
end
})
-- Sony PlayStation lookalike
computer.register("computer:slaystation", {
description = "Pony SlayStation",
inventory_image = "computer_ps1_inv.png",
tiles_off = { top=true },
node_box = computer.pixelnodebox(32, {
-- X Y Z W H L
{ 0, 0, 11, 32, 6, 21 }, -- Console
{ 1, 0, 1, 4, 2, 9 }, -- Controller 1 L Grip
{ 10, 0, 1, 4, 2, 9 }, -- Controller 1 R Grip
{ 5, 0, 4, 5, 2, 5 }, -- Controller 1 Center
{ 18, 0, 1, 4, 2, 9 }, -- Controller 2 L Grip
{ 27, 0, 1, 4, 2, 9 }, -- Controller 2 R Grip
{ 22, 0, 4, 5, 2, 5 } -- Controller 2 Center
})
})
-- Sony PlayStation 2 lookalike
computer.register("computer:slaystation2", {
description = "Pony SlayStation 2",
inventory_image = "computer_ps2_inv.png",
tiles_off = { front=true },
node_box = computer.pixelnodebox(32, {
-- X Y Z W H L
{ 2, 2, 11, 28, 3, 19 }, -- Console (Upper part)
{ 2, 0, 11, 26, 2, 19 }, -- Console (Lower part)
{ 1, 0, 1, 4, 2, 9 }, -- Controller 1 L Grip
{ 10, 0, 1, 4, 2, 9 }, -- Controller 1 R Grip
{ 5, 0, 1, 5, 2, 8 }, -- Controller 1 Center
{ 18, 0, 1, 4, 2, 9 }, -- Controller 2 L Grip
{ 27, 0, 1, 4, 2, 9 }, -- Controller 2 R Grip
{ 22, 0, 1, 5, 2, 8 } -- Controller 2 Center
})
})
-- Sinclair ZX Spectrum lookalike
computer.register("computer:specter", {
description = "SX Specter",
inventory_image = "computer_specter_inv.png",
tiles_off = { },
node_box = computer.pixelnodebox(32, {
-- X Y Z W H L
{ 3, 0, 0, 26, 4, 17 }, -- Keyboard
{ 18, 0, 18, 12, 6, 14 } -- Tape Player
})
})
-- Nintendo Wii lookalike
computer.register("computer:wee", {
description = "Nientiendo Wee",
inventory_image = "computer_wii_inv.png",
tiles_off = { front=true },
node_box = computer.pixelnodebox(32, {
-- X Y Z W H L
{ 11, 0, 3, 10, 6, 26 }, -- Base
{ 12, 6, 4, 8, 22, 24 } -- Top
})
})
-- Apple iPad lookalike
minetest.register_node("computer:piepad", {
description = "Snapple Piepad",
drawtype = "signlike",
tiles = {"computer_piepad_inv.png"},
inventory_image = "computer_piepad_inv.png",
wield_image = "computer_piepad_inv.png",
paramtype = "light",
paramtype2 = "wallmounted",
light_source = 8,
walkable = false,
groups = {oddly_breakable_by_hand=2},
selection_box = {type = "wallmounted"},
sounds = default.node_sound_wood_defaults()
})
-- Commodore 64 lookalike
computer.register("computer:admiral64", {
description = "Admiral64",
inventory_image = "computer_ad64_inv.png",
tiles_off = { },
node_box = computer.pixelnodebox(32, {
-- X Y Z W H L
{ 0, 0, 0, 32, 4, 18 } -- Keyboard
})
})
-- Commodore 128 lookalike
computer.register("computer:admiral128", {
description = "Admiral128",
inventory_image = "computer_ad128_inv.png",
tiles_off = { },
node_box = computer.pixelnodebox(32, {
-- X Y Z W H L
{ 0, 0, 0, 32, 4, 27 } -- Keyboard
})
})
-- 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",
fixed = { -0.5, -0.5, -0.43, 0.5, 0.2, 0.25 }
}
minetest.register_node("computer:monitor", {
description = S("Monitor and keyboard"),
inventory_image = "computer_monitor_inv.png",
drawtype = "mesh",
mesh = "computer_monitor.obj",
tiles = {"computer_black.png", "monitor_plastic.png", "computer_black.png", "monitor_plastic.png"},
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = {snappy=3},
selection_box = mo_sbox,
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computer:monitor_on"
minetest.set_node(pos, node)
return itemstack
end
})
minetest.register_node("computer:monitor_on", {
drawtype = "mesh",
mesh = "computer_monitor.obj",
tiles = {"monitor_display.png^[transformFX", "monitor_plastic.png", "computer_black.png", "monitor_plastic.png"},
paramtype = "light",
paramtype2 = "facedir",
light_source = 9,
walkable = false,
groups = {snappy=3, not_in_creative_inventory=1},
selection_box = mo_sbox,
drop = "computer:monitor",
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computer:monitor"
minetest.set_node(pos, node)
return itemstack
end
})
minetest.register_alias("computer:monitor_bios", "computer:monitor")
minetest.register_alias("computer:monitor_loading", "computer:monitor")
minetest.register_alias("computer:monitor_login", "computer:monitor")
minetest.register_alias("computer:monitor_desktop", "computer:monitor")
--WIFI Router (linksys look-a-like)
minetest.register_node("computer: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"},
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = {snappy=3},
sound = default.node_sound_wood_defaults(),
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.25, -0.5, -0.0625, 0.25, -0.375, 0.3125},
{-0.1875, -0.4375, 0.3125, -0.125, -0.1875, 0.375},
{0.125, -0.4375, 0.3125, 0.1875, -0.1875, 0.375},
{-0.0625, -0.4375, 0.3125, 0.0625, -0.25, 0.375}
}
}
})
local pct_cbox = {
type = "fixed",
fixed = { -0.1875, -0.5, -0.36, 0.1875, 0.34, 0.46 }
}
--Modern PC Tower
minetest.register_node("computer:tower", {
description = S("Computer Tower"),
inventory_image = "computer_tower_inv.png",
drawtype = "mesh",
mesh = "computer_tower.obj",
tiles = {"computer_tower.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=3},
sound = default.node_sound_wood_defaults(),
selection_box = pct_cbox,
collision_box = pct_cbox
})
minetest.register_alias("computer:tower_on", "computer:tower")
--Rack Server
minetest.register_node("computer:server", {
drawtype = "nodebox",
description = S("Rack Server"),
tiles = {
'computer_server_t.png',
'computer_server_bt.png',
'computer_server_l.png',
'computer_server_r.png',
'computer_server_bt.png',
'computer_server_f_off.png'
},
inventory_image = "computer_server_inv.png",
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=3},
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}
},
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}
},
sounds = default.node_sound_wood_defaults(),
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computer:server_on"
minetest.set_node(pos, node)
return itemstack
end,
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(),
S("Not enough vertical space to place a server!" ))
return itemstack
end
return minetest.item_place(itemstack, placer, pointed_thing)
end
})
minetest.register_node("computer:server_on", {
drawtype = "nodebox",
tiles = {
'computer_server_t.png',
'computer_server_bt.png',
'computer_server_l.png',
'computer_server_r.png',
'computer_server_bt.png',
'computer_server_f_on.png',
},
inventory_image = "computer_server_inv.png",
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=3,not_in_creative_inventory=1},
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}
},
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}
},
sounds = default.node_sound_wood_defaults(),
drop = 'computer:server',
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computer:server"
minetest.set_node(pos, node)
return itemstack
end
})

View File

@ -1,4 +0,0 @@
default
homedecor_common
basic_materials
unifieddyes

View File

@ -1,99 +0,0 @@
computer = {}
screwdriver = screwdriver or {}
computer.register = function (name, def)
if (name:sub(1, 1) == ":") then name = name:sub(2) end
local modname, basename = name:match("^([^:]+):(.*)")
local TEXPFX = modname.."_"..basename.."_"
local ONSTATE = modname..":"..basename
local OFFSTATE = modname..":"..basename.."_off"
local cdef = table.copy(def)
minetest.register_node(ONSTATE, {
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
description = cdef.description,
inventory_image = cdef.inventory_image,
groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2},
tiles = {
TEXPFX.."tp.png",
TEXPFX.."bt.png",
TEXPFX.."rt.png",
TEXPFX.."lt.png",
TEXPFX.."bk.png",
TEXPFX.."ft.png"
},
node_box = cdef.node_box,
selection_box = cdef.node_box,
on_rightclick = function (pos, node, clicker, itemstack)
if cdef.on_turn_off and cdef.on_turn_off(pos, node, clicker, itemstack) then
return itemstack
end
node.name = OFFSTATE
minetest.set_node(pos, node)
return itemstack
end
})
minetest.register_node(OFFSTATE, {
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, not_in_creative_inventory=1},
tiles = {
(TEXPFX.."tp"..(cdef.tiles_off.top and "_off" or "")..".png"),
(TEXPFX.."bt"..(cdef.tiles_off.bottom and "_off" or "")..".png"),
(TEXPFX.."rt"..(cdef.tiles_off.right and "_off" or "")..".png"),
(TEXPFX.."lt"..(cdef.tiles_off.left and "_off" or "")..".png"),
(TEXPFX.."bk"..(cdef.tiles_off.back and "_off" or "")..".png"),
(TEXPFX.."ft"..(cdef.tiles_off.front and "_off" or "")..".png")
},
node_box = cdef.node_box_off or cdef.node_box,
selection_box = cdef.node_box_off or cdef.node_box,
on_rightclick = function (pos, node, clicker, itemstack)
if cdef.on_turn_on and cdef.on_turn_on(pos, node, clicker, itemstack) then
return itemstack
end
node.name = ONSTATE
minetest.set_node(pos, node)
return itemstack
end,
drop = ONSTATE
})
end
computer.register_handheld = function (name, def)
if (name:sub(1, 1) == ":") then name = name:sub(2) end
local modname, basename = name:match("^([^:]+):(.*)")
local TEXPFX = modname.."_"..basename.."_inv"
local ONSTATE = modname..":"..basename
minetest.register_craftitem(ONSTATE, {
description = def.description,
inventory_image = TEXPFX..".png",
wield_image = TEXPFX..".png"
})
end
computer.pixelnodebox = function (size, boxes)
local fixed = { }
for _, box in ipairs(boxes) do
local x, y, z, w, h, l = unpack(box)
fixed[#fixed + 1] = {
(x / size) - 0.5,
(y / size) - 0.5,
(z / size) - 0.5,
((x + w) / size) - 0.5,
((y + h) / size) - 0.5,
((z + l) / size) - 0.5
}
end
return {
type = "fixed",
fixed = fixed
}
end
local MODPATH = minetest.get_modpath("computer")
dofile(MODPATH.."/computers.lua")
dofile(MODPATH.."/printers.lua")
dofile(MODPATH.."/recipes.lua")
dofile(MODPATH.."/tetris.lua")

File diff suppressed because it is too large Load Diff

View File

@ -1,124 +0,0 @@
# Blender v2.69 (sub 0) OBJ File: ''
# www.blender.org
mtllib computer_laptop.mtl
o Cube.001
v -0.340277 0.022636 0.335290
v -0.340277 0.013075 0.362499
v 0.332320 0.022636 0.335292
v 0.332320 -0.432772 0.182772
v 0.332320 0.013075 0.362501
v -0.340276 -0.499994 -0.312651
v -0.340276 -0.432772 -0.312651
v 0.332321 -0.499994 -0.312650
v -0.340277 -0.499994 0.182771
v 0.332320 -0.499994 0.182772
v -0.340277 -0.432772 0.182771
v -0.340278 -0.432772 0.209979
v 0.332320 -0.432772 0.209981
v 0.332320 -0.499994 0.209981
v -0.340278 -0.499994 0.209979
v -0.319957 -0.417924 0.194820
v -0.319957 -0.001053 0.334433
v 0.312000 -0.417925 0.194821
v -0.340277 -0.432772 -0.159321
v 0.332321 -0.432772 -0.312650
v 0.311999 -0.001054 0.334434
v 0.332321 -0.432772 -0.159320
vt 0.682604 0.005242
vt 0.682603 0.021207
vt 0.310265 0.005245
vt 0.044426 0.009206
vt 0.310266 0.021211
vt 0.753340 0.119988
vt 0.810356 0.119988
vt 0.753340 0.597765
vt 0.856851 0.982221
vt 0.745750 0.982220
vt 0.856851 0.831387
vt 0.948453 0.009205
vt 0.878028 0.982221
vt 0.878028 0.831387
vt 0.983700 0.982221
vt 0.862953 0.831387
vt 0.862953 0.982221
vt 0.728292 0.490807
vt 0.728292 0.989869
vt 0.010900 0.490807
vt 0.831643 0.129995
vt 0.982007 0.129995
vt 0.831643 0.789586
vt 0.758249 0.754841
vt 0.758228 0.812823
vt 0.756060 0.752868
vt 0.798519 0.812617
vt 0.756052 0.814797
vt 0.798577 0.754909
vt 0.800285 0.814587
vt 0.707729 0.114386
vt 0.707729 0.471212
vt 0.006162 0.114385
vt 0.345650 0.099088
vt 0.497058 0.032709
vt 0.497058 0.099088
vt 0.990661 0.099453
vt 0.838275 0.032645
vt 0.990661 0.032645
vt 0.007709 0.008663
vt 0.012705 0.022873
vt 0.983559 0.009737
vt 0.943457 0.023414
vt 0.049421 0.023416
vt 0.810356 0.597766
vt 0.745750 0.831387
vt 0.983700 0.831387
vt 0.010900 0.989869
vt 0.982007 0.789586
vt 0.800332 0.752938
vt 0.006162 0.471212
vt 0.007844 0.099088
vt 0.007844 0.032709
vt 0.498289 0.099453
vt 0.498289 0.032646
vt 0.978563 0.023946
usemtl Material.001
s off
f 1/1 2/2 3/3
f 4/4 3/3 5/5
f 6/6 7/7 8/8
f 9/9 6/10 10/11
f 1/1 11/12 2/2
f 12/13 13/14 2/15
f 13/14 12/13 14/16
f 9/9 10/11 15/17
f 16/18 17/19 18/20
f 7/21 19/22 20/23
f 21/24 17/25 3/26
f 16/27 1/28 17/25
f 18/29 21/24 3/26
f 16/27 18/29 11/30
f 19/31 11/32 22/33
f 22/34 8/35 20/36
f 6/37 19/38 7/39
f 10/40 4/4 14/41
f 11/12 9/42 12/43
f 2/2 5/5 3/3
f 13/44 4/4 5/5
f 7/7 20/45 8/8
f 6/10 8/46 10/11
f 11/12 12/43 2/2
f 13/14 5/47 2/15
f 12/13 15/17 14/16
f 10/11 14/16 15/17
f 17/19 21/48 18/20
f 19/22 22/49 20/23
f 17/25 1/28 3/26
f 11/30 1/28 16/27
f 4/50 18/29 3/26
f 18/29 4/50 11/30
f 11/32 4/51 22/33
f 4/52 10/53 8/35
f 22/34 4/52 8/35
f 9/54 11/55 6/37
f 11/55 19/38 6/37
f 4/4 13/44 14/41
f 9/42 15/56 12/43

View File

@ -1,138 +0,0 @@
# Blender v2.69 (sub 0) OBJ File: ''
# www.blender.org
mtllib computer_laptop_closed.mtl
o Cube.001
v 0.332320 -0.432772 0.182772
v -0.340276 -0.499994 -0.312651
v -0.340276 -0.432772 -0.312651
v 0.332321 -0.499994 -0.312650
v -0.340277 -0.499994 0.182771
v 0.332320 -0.499994 0.182772
v -0.340277 -0.432772 0.182771
v -0.340278 -0.432772 0.209979
v 0.332320 -0.432772 0.209981
v 0.332320 -0.499994 0.209981
v -0.340278 -0.499994 0.209979
v -0.340277 -0.432772 -0.159321
v 0.332321 -0.432772 -0.312650
v 0.332321 -0.432772 -0.159320
v -0.339100 -0.432290 -0.312591
v -0.339100 -0.401111 -0.312123
v 0.331143 -0.432288 -0.312592
v 0.331143 -0.432434 0.206702
v 0.331143 -0.401109 -0.312123
v -0.339100 -0.432435 0.206702
v -0.339101 -0.404537 0.197368
v 0.331143 -0.404535 0.197367
v -0.318852 -0.425175 0.187344
v -0.318852 -0.425042 -0.288007
v 0.310895 -0.425173 0.187344
v 0.310894 -0.425040 -0.288006
vt 0.753340 0.119988
vt 0.810356 0.119988
vt 0.753340 0.597765
vt 0.856851 0.982221
vt 0.745750 0.982220
vt 0.856851 0.831387
vt 0.878028 0.831387
vt 0.878028 0.982221
vt 0.862953 0.831387
vt 0.862953 0.982221
vt 0.858063 0.829423
vt 0.885587 0.829423
vt 0.858063 0.950158
vt 0.935597 0.852882
vt 0.935597 0.922715
vt 0.798294 0.852882
vt 0.345650 0.099088
vt 0.497058 0.032709
vt 0.497058 0.099088
vt 0.990661 0.099453
vt 0.838275 0.032645
vt 0.990661 0.032645
vt 0.007709 0.008663
vt 0.044426 0.009206
vt 0.012705 0.022873
vt 0.948453 0.009205
vt 0.983559 0.009737
vt 0.943457 0.023414
vt 0.810356 0.597766
vt 0.745750 0.831387
vt 0.885587 0.950158
vt 0.912135 0.962581
vt 0.785835 0.838012
vt 0.886333 0.908011
vt 0.922048 0.840165
vt 0.798294 0.922715
vt 0.007844 0.099088
vt 0.007844 0.032709
vt 0.498289 0.099453
vt 0.498289 0.032646
vt 0.049421 0.023416
vt 0.978563 0.023946
vt 0.682604 0.005242
vt 0.682603 0.021207
vt 0.310265 0.005245
vt 0.310266 0.021211
vt 0.983700 0.982221
vt 0.922420 0.868181
vt 0.922420 0.951695
vt 0.802372 0.868181
vt 0.758249 0.754841
vt 0.758228 0.812823
vt 0.756060 0.752868
vt 0.798519 0.812617
vt 0.756052 0.814797
vt 0.798577 0.754909
vt 0.800285 0.814587
vt 0.983700 0.831387
vt 0.802372 0.951695
vt 0.800332 0.752938
vt 0.896350 0.948981
vt 0.903598 0.848845
vt 0.888354 0.925385
vt 0.811076 0.850308
usemtl Material.001
s off
f 2/1 3/2 4/3
f 5/4 2/5 6/6
f 9/7 8/8 10/9
f 5/4 6/6 11/10
f 3/11 12/12 13/13
f 12/14 7/15 14/16
f 14/17 4/18 13/19
f 2/20 12/21 3/22
f 6/23 1/24 10/25
f 7/26 5/27 8/28
f 3/2 13/29 4/3
f 2/5 4/30 6/6
f 8/8 11/10 10/9
f 6/6 10/9 11/10
f 12/12 14/31 13/13
f 8/32 9/33 1/34 7/35
f 7/15 1/36 14/16
f 1/37 6/38 4/18
f 14/17 1/37 4/18
f 5/39 7/40 2/20
f 7/40 12/21 2/20
f 1/24 9/41 10/25
f 5/27 11/42 8/28
f 15/43 16/44 17/45
f 18/24 17/45 19/46
f 15/43 20/26 16/44
f 21/8 22/7 16/47
f 23/48 24/49 25/50
f 26/51 24/52 17/53
f 23/54 15/55 24/52
f 25/56 26/51 17/53
f 23/54 25/56 20/57
f 16/44 19/46 17/45
f 22/41 18/24 19/46
f 20/26 21/28 16/44
f 22/7 19/58 16/47
f 24/49 26/59 25/50
f 24/52 15/55 17/53
f 20/57 15/55 23/54
f 18/60 25/56 17/53
f 25/56 18/60 20/57
f 21/61 20/62 18/63 22/64

File diff suppressed because it is too large Load Diff

View File

@ -1,33 +0,0 @@
# Blender v2.72 (sub 0) OBJ File: ''
# www.blender.org
mtllib computer_tower.mtl
o Cube.001
v -0.182508 -0.499998 0.450000
v -0.182508 -0.499998 -0.349946
v 0.182508 -0.499998 -0.349946
v 0.182508 -0.499998 0.450000
v -0.182508 0.335734 0.450000
v 0.182508 0.335734 0.450000
v 0.182508 0.335734 -0.349946
v -0.182508 0.335734 -0.349947
vt 0.999994 0.750017
vt 0.500006 0.749983
vt 0.500002 0.499996
vt 0.999997 0.500009
vt 0.499989 0.999941
vt 0.999986 0.999931
vt 0.500005 0.000003
vt 0.000007 0.500002
vt -0.000003 0.000003
vt 0.250005 0.999991
vt 0.250005 0.499995
vt 0.999993 0.000002
vt 0.000017 0.999997
usemtl Material.001
s off
f 1/1 2/2 3/3 4/4
f 5/5 6/2 7/1 8/6
f 1/7 5/3 8/8 2/9
f 2/3 8/5 7/10 3/11
f 3/12 7/4 6/3 4/7
f 5/13 1/8 4/11 6/10

View File

@ -1,143 +0,0 @@
# Blender v2.66 (sub 1) OBJ File: ''
# www.blender.org
mtllib tetris_arcade.mtl
o Cube.001
v -0.450000 1.299500 -0.450000
v -0.450000 1.299500 -0.500000
v 0.450000 1.299500 -0.500000
v 0.450000 1.299500 -0.450000
v -0.450000 1.499500 -0.450000
v -0.450000 1.499500 -0.500000
v 0.450000 1.499500 -0.500000
v 0.450000 1.499500 -0.450000
v 0.450000 -0.495000 -0.500000
v 0.450000 0.305000 -0.500001
v -0.450000 -0.495000 -0.499999
v -0.450000 0.305000 -0.500000
v 0.450000 -0.498500 0.500000
v 0.450000 -0.498500 -0.500000
v 0.500000 -0.498500 -0.500000
v 0.500000 -0.498500 0.500000
v 0.450000 1.498500 0.500000
v 0.450000 1.498500 -0.500000
v 0.500000 1.498500 -0.500000
v 0.500000 1.498500 0.500000
v 0.499998 -0.499998 -0.499998
v 0.499998 -0.499998 0.499998
v -0.499998 -0.499998 0.499998
v -0.499998 -0.499998 -0.499998
v 0.499998 1.499994 -0.499998
v -0.499998 1.499994 -0.499998
v -0.499998 1.499994 0.499998
v 0.499998 1.499994 0.499998
v -0.500000 -0.498500 0.500000
v -0.500000 -0.498500 -0.500000
v -0.450000 -0.498500 -0.500000
v -0.450000 -0.498500 0.500000
v -0.500000 1.498500 0.500000
v -0.500000 1.498500 -0.500000
v -0.450000 1.498500 -0.500000
v -0.450000 1.498500 0.500000
v 0.450000 0.304976 -0.499762
v 0.450000 0.474024 -0.137239
v -0.450000 0.304976 -0.499761
v -0.450000 0.474024 -0.137238
v 0.450000 0.472946 -0.138083
v 0.450000 0.613900 -0.086780
v -0.450000 0.472946 -0.138082
v -0.450000 0.613900 -0.086779
v 0.450000 0.610884 -0.085130
v 0.450000 1.398731 0.053788
v -0.450000 0.610884 -0.085130
v -0.450000 1.398731 0.053789
v 0.450000 1.395000 0.055138
v 0.450000 1.495000 0.055138
v -0.450000 1.395000 0.055138
v -0.450000 1.495000 0.055138
vt 0.250108 0.745030
vt 0.250224 0.516409
vt 0.494888 0.516008
vt 0.495027 0.744660
vt 0.500090 0.744658
vt 0.250080 0.744698
vt 0.250023 0.693307
vt 0.500163 0.693337
vt 0.244872 0.999900
vt 0.000100 0.999900
vt 0.000100 0.925965
vt 0.244701 0.925965
vt -0.000234 0.985285
vt 0.246386 0.985398
vt 0.246568 0.999900
vt 0.254685 0.396330
vt 0.255312 0.252326
vt 0.489851 0.252497
vt 0.489923 0.396494
vt 0.746604 0.251526
vt 1.000599 0.251553
vt 1.000481 0.749319
vt 0.748216 0.749150
vt 0.971448 0.251053
vt 0.999396 0.251108
vt 1.000262 0.749144
vt 0.972149 0.748806
vt 0.250110 0.749633
vt 0.000464 0.749633
vt 0.001279 0.251648
vt 0.250023 0.251690
vt 0.742499 0.744632
vt 0.500700 0.744632
vt 0.500700 0.255368
vt 0.742499 0.255368
vt 0.951737 0.252687
vt 0.999900 0.252686
vt 0.999900 0.748679
vt 0.951737 0.748679
vt 1.000029 0.749233
vt 0.744529 0.749104
vt 0.745177 0.251367
vt 1.001019 0.251067
vt 0.255742 0.485017
vt 0.255492 0.401623
vt 0.494936 0.401277
vt 0.495186 0.485021
vt 0.260753 0.515705
vt 0.260629 0.484664
vt 0.494387 0.484878
vt 0.494282 0.515673
vt -0.000037 0.745106
vt 0.000017 0.703328
vt 0.245542 0.703882
vt 0.245632 0.745399
vt 0.250050 0.250050
vt 0.000100 0.250050
vt 0.000100 0.000100
vt 0.250050 0.000100
vt 0.250050 0.749950
vt 0.250050 0.999900
vt 0.000100 0.749950
vt 0.999900 0.250049
vt 0.999900 0.749949
vt 0.749950 0.749950
vt 0.749950 0.250050
usemtl Material.001
s off
f 46/1 45/2 47/3 48/4
usemtl Material.001_tetris_arcade.png
f 6/5 7/6 3/7 2/8
f 8/9 5/10 1/11 4/12
f 1/10 2/13 3/14 4/15
f 10/16 9/17 11/18 12/19
f 17/20 18/21 14/22 13/23
f 18/24 19/25 15/26 14/27
f 19/28 20/29 16/30 15/31
f 33/32 34/33 30/34 29/35
f 34/36 35/37 31/38 30/39
f 35/40 36/41 32/42 31/43
f 38/44 37/45 39/46 40/47
f 42/48 41/49 43/50 44/51
f 50/52 49/53 51/54 52/55
usemtl Material.001_NONE
f 21/56 22/57 23/58 24/59
f 25/60 26/61 27/10 28/62
f 22/63 28/64 27/65 23/66

View File

@ -1,61 +0,0 @@
-- Printers of some kind or another
local S = homedecor.gettext
minetest.register_node("computer:printer", {
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"},
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = {snappy=3},
sound = default.node_sound_wood_defaults(),
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.4375, -0.3125, -0.125, 0.4375, -0.0625, 0.375},
{-0.4375, -0.5, -0.125, 0.4375, -0.4375, 0.375},
{-0.4375, -0.5, -0.125, -0.25, -0.0625, 0.375},
{0.25, -0.5, -0.125, 0.4375, -0.0625, 0.375},
{-0.4375, -0.5, -0.0625, 0.4375, -0.0625, 0.375},
{-0.375, -0.4375, 0.25, 0.375, -0.0625, 0.4375},
{-0.25, -0.25, 0.4375, 0.25, 0.0625, 0.5},
{-0.25, -0.481132, -0.3125, 0.25, -0.4375, 0}
},
},
})
-- "bedflinger" style 3D Printer (Prusa i3 or equivalent)
local cbox = {
type = "fixed",
fixed = {-0.25, -0.25, -0.5, 0.3, 0.3, 0.25 }
}
minetest.register_node("computer:3dprinter_bedflinger", {
description = S('3D Printer ("bedflinger")'),
inventory_image = "computer_3dprinter_bedflinger_inv.png",
tiles = {
{ name = "computer_3dprinter_bedflinger.png", color = 0xffffffff },
"computer_3dprinter_filament.png"
},
paramtype = "light",
walkable = true,
groups = {snappy=3, ud_param2_colorable = 1},
sound = default.node_sound_wood_defaults(),
drawtype = "mesh",
mesh = "computer_3dprinter_bedflinger.obj",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = cbox,
collision_box = cbox,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
end,
on_dig = unifieddyes.on_dig,
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
})

View File

@ -1,141 +0,0 @@
-- Copyright (C) 2012-2013 Diego Martínez <kaeza@users.sf.net>
minetest.register_craft({
output = "computer:shefriendSOO",
recipe = {
{ "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 = {
{ "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 = {
{ "basic_materials:plastic_sheet", "", "" },
{ "default:glass", "", "" },
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computer:specter",
recipe = {
{ "", "", "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 = {
{ "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 = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "group:wood", "group:wood", "group:wood" }
}
})
minetest.register_craft({
output = "computer:admiral128",
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }
}
})
minetest.register_craft({
output = "computer:wee",
recipe = {
{ "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 = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "default:glass", "basic_materials:plastic_sheet" }
}
})
--new stuff
minetest.register_craft({
output = "computer:monitor",
recipe = {
{ "basic_materials:plastic_sheet", "default:glass","" },
{ "basic_materials:plastic_sheet", "default:glass","" },
{ "basic_materials:plastic_sheet", "default:mese_crystal_fragment", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computer:router",
recipe = {
{ "default:steel_ingot","","" },
{ "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 = {
{ "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 = {
{ "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 = {
{ "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", }
}
})
minetest.register_craft({
output = "computer:server",
recipe = {
{ "computer:tower", "computer:tower", "computer:tower", },
{ "computer:tower", "computer:tower", "computer:tower" },
{ "computer:tower", "computer:tower", "computer:tower" }
}
})
minetest.register_craft({
output = "computer:tetris_arcade",
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal", "basic_materials:plastic_sheet", },
{ "dye:black", "default:glass", "dye:black" },
{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal", "basic_materials:plastic_sheet" }
}
})

View File

@ -1,290 +0,0 @@
local S = homedecor.gettext
local shapes = {
{ { x = {0, 1, 0, 1}, y = {0, 0, 1, 1} } },
{ { x = {1, 1, 1, 1}, y = {0, 1, 2, 3} },
{ x = {0, 1, 2, 3}, y = {1, 1, 1, 1} } },
{ { x = {0, 0, 1, 1}, y = {0, 1, 1, 2} },
{ x = {1, 2, 0, 1}, y = {0, 0, 1, 1} } },
{ { x = {1, 0, 1, 0}, y = {0, 1, 1, 2} },
{ x = {0, 1, 1, 2}, y = {0, 0, 1, 1} } },
{ { x = {1, 2, 1, 1}, y = {0, 0, 1, 2} },
{ x = {0, 1, 2, 2}, y = {1, 1, 1, 2} },
{ x = {1, 1, 0, 1}, y = {0, 1, 2, 2} },
{ x = {0, 0, 1, 2}, y = {0, 1, 1, 1} } },
{ { x = {1, 1, 1, 2}, y = {0, 1, 2, 2} },
{ x = {0, 1, 2, 0}, y = {1, 1, 1, 2} },
{ x = {0, 1, 1, 1}, y = {0, 0, 1, 2} },
{ x = {0, 1, 2, 2}, y = {1, 1, 1, 0} } },
{ { x = {1, 0, 1, 2}, y = {0, 1, 1, 1} },
{ x = {1, 1, 1, 2}, y = {0, 1, 2, 1} },
{ x = {0, 1, 2, 1}, y = {1, 1, 1, 2} },
{ x = {0, 1, 1, 1}, y = {1, 0, 1, 2} } } }
local colors = { "computer_cyan.png", "computer_magenta.png", "computer_red.png",
"computer_blue.png", "computer_green.png", "computer_orange.png", "computer_yellow.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;"..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;"..minetest.formspec_escape(S("R")).."]"
.."button[5.4,4.5;0.6,0.6;right;>]"
.."button[3.5,3;2,2;new;"..minetest.formspec_escape(S("New Game")).."]"
local formsize = "size[5.9,5.7]"
local boardx, boardy = 0, 0
local sizex, sizey, size = 0.29, 0.29, 0.31
local comma = ","
local semi = ";"
local close = "]"
local concat = table.concat
local insert = table.insert
local draw_shape = function(id, x, y, rot, posx, posy)
local d = shapes[id][rot]
local scr = {}
local ins = #scr
for i=1,4 do
local tmp = { "image[",
(d.x[i]+x)*sizex+posx, comma,
(d.y[i]+y)*sizey+posy, semi,
size, comma, size, semi,
colors[id], close }
ins = ins + 1
scr[ins] = concat(tmp)
end
return concat(scr)
end
local function step(pos, fields)
local meta = minetest.get_meta(pos)
local t = minetest.deserialize(meta:get_string("tetris"))
local function new_game(p)
local nex = math.random(7)
t = {
board = {},
boardstring = "",
previewstring = draw_shape(nex, 0, 0, 1, 4, 1),
score = 0,
cur = math.random(7),
nex = nex,
x=4, y=0, rot=1
}
local timer = minetest.get_node_timer(p)
timer:set(0.3, 0)
end
local function update_boardstring()
local scr = {}
local ins = #scr
for i, line in pairs(t.board) do
for _, tile in pairs(line) do
local tmp = { "image[",
tile[1]*sizex+boardx, comma,
i*sizey+boardy, semi,
size, comma, size, semi,
colors[tile[2]], close }
ins = ins + 1
scr[ins] = concat(tmp)
end
end
t.boardstring = concat(scr)
end
local function add()
local d = shapes[t.cur][t.rot]
for i=1,4 do
local l = d.y[i] + t.y
if not t.board[l] then t.board[l] = {} end
insert(t.board[l], {d.x[i] + t.x, t.cur})
end
end
local function scroll(l)
for i=l, 1, -1 do
t.board[i] = t.board[i-1] or {}
end
end
local function check_lines()
for i, line in pairs(t.board) do
if #line >= 10 then
scroll(i)
t.score = t.score + 20
end
end
end
local function check_position(x, y, rot)
local d = shapes[t.cur][rot]
for i=1,4 do
local cx, cy = d.x[i]+x, d.y[i]+y
if cx < 0 or cx > 9 or cy < 0 or cy > 19 then
return false
end
for _, tile in pairs(t.board[ cy ] or {}) do
if tile[1] == cx then return false end
end
end
return true
end
local function stuck()
if check_position(t.x, t.y+1, t.rot) then return false end
return true
end
local function tick()
if stuck() then
if t.y <= 0 then
return false end
add()
check_lines()
update_boardstring()
t.cur, t.nex = t.nex, math.random(7)
t.x, t.y, t.rot = 4, 0, 1
t.previewstring = draw_shape(t.nex, 0, 0, 1, 4.1, 0.6)
else
t.y = t.y + 1
end
return true
end
local function move(dx, dy)
local newx, newy = t.x+dx, t.y+dy
if not check_position(newx, newy, t.rot) then return end
t.x, t.y = newx, newy
end
local function rotate(dr)
local no = #(shapes[t.cur])
local newrot = (t.rot+dr) % no
if newrot<1 then newrot = newrot+no end
if not check_position(t.x, t.y, newrot) then return end
t.rot = newrot
end
local function key()
if fields.left then
move(-1, 0)
end
if fields.rotateleft then
rotate(-1)
end
if fields.down then
t.score = t.score + 1
move(0, 1)
end
if fields.drop then
while not stuck() do
t.score = t.score + 2
move(0, 1)
end
end
if fields.rotateright then
rotate(1)
end
if fields.right then
move(1, 0)
end
end
local run = true
if fields then
if fields.new then
new_game(pos)
elseif t then
key(fields)
end
elseif t then
run = tick()
end
if t then
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;"..S("Next...").."]label[3.8,2.7;"..S("Score: "),
t.score, close, buttons }
meta:set_string("formspec", concat(scr)
..default.gui_bg..default.gui_bg_img..default.gui_slots)
meta:set_string("tetris", minetest.serialize(t))
end
return run
end
minetest.register_node("computer:tetris_arcade", {
description=S("Tetris Arcade"),
drawtype = "mesh",
mesh = "tetris_arcade.obj",
tiles = {"tetris_arcade.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=3},
on_rotate = screwdriver.rotate_simple,
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5}
},
collision_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5}
},
on_construct = function(pos)
local meta = minetest.get_meta(pos)
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)
return step(pos, nil)
end,
on_receive_fields = function(pos, formanme, fields, sender)
step(pos, fields)
end,
on_place = function(itemstack, placer, pointed_thing)
local pos = pointed_thing.above
if minetest.is_protected(pos, placer:get_player_name()) or
minetest.is_protected({x=pos.x, y=pos.y+1, z=pos.z}, placer:get_player_name()) then
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(), S("No room for place the Arcade!"))
return itemstack
end
local dir = placer:get_look_dir()
local node = {name="computer:tetris_arcade", param1=0, param2 = minetest.dir_to_facedir(dir)}
minetest.set_node(pos, node)
itemstack:take_item()
return itemstack
end
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 415 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 B

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