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
The ABM that replaces deleted entities in itemframes and pedestals can sometimes add multiple copies of each entity due to a race condition in which the ABM runs either before the server loads the entities or after they have been removed due to the map block being unloaded. Due to limitations in determining when all entities have been loaded, this race condition cannot be fully avoided. This commit converts the ABM, which ran every fifteen seconds, into and LBM that runs on every load and adds a check to the entities when they are loaded such that only the first loaded entity will be kept and any additional copies delete themselves during the loading process.
This pull checks for mesecons_mvps mod and adds the item frame and
pedestal items to the list of non-movable items so that players cannot
exploit the double-item glitch.
mesecons_mvps added to depends.txt file for this to work.