Global: Fix Dispenser bugs
The custom dispenser code allows placement of saplings on any block instead of only dirt/grass. Besides that it also only allows placement of nether wart on farmland instead of soulsand.
By allowing saplings to be placed on any block it can be used to remove bedrock (dark oak saplings replace the 2x2 area under the tree with dirt).
Dispensers don't check the block rails are being placed on either, allowing players to place rails on fences or in mid-air.
-
Move Dispenser code to it's own folder (currently: GLOBAL\Main\bindings.ms) -
Temp disable placement of Saplings using dispensers -
Separate code for different functionalities of dispensers -
Fix placement of Saplings using dispensers -
Fix placement of Nether Wart using dispensers -
Fix placement of different types of rails using dispensers
material_info() traits like: isBlock, isOccluding, isSolid, isTransparent, ... are useless for checking whether or not a rail can be placed on a block. Besides rails there are plenty of other exceptions (like redstone). The only solution for a robust solution I see at this moment is picking one or a combination of traits as a default guideline and having a white/blacklist to rule out the exceptions.