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.
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-Objhttps://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
move lrfurn tables to homedecor_tables
create new mod: homedecor_seating
move lrfurn chair, sofas, and all types of homedecor
chairs, benches, etc. that I could think of,
whether intended for exterior or interior use,
to that new mod.
(except tree swing :P )
lrfurn was left empty after this, so deleted.
Any of these new submods can be run without any other
components that were once part of the big "homedecor"
mod, other than homedecor_common and homedecor_i18n
Reduced dependencies where possible, but each submod still
has its various dependencies more or less the same as before,
i.e. some need basic_materials, others need unifieddyes,
some need building_blocks, and so on.
All of the stuff that used to be under homedecor/handlers
got moved to homedecor_common, as did any models and/or textures
that are used by more than one other homedecor component.
All the miscellaneous items that didn't warrant their own
mod ended up in homedecor_misc, which can also be thought
of as the remains of the original "homedecor" mod, renamed.