Give shields a setting to only replace air, rather than all replaceable blocks
61352151511 opened this issue · 3 comments
Issue description: Using a shape card of "Box - Hollow" for my shield projector (tier 4) I created a shield large enough to encompass my whole base (quite a large base). I then activated the shield and noticed when I went outside that my liquid starlight from astral sorcery was missing. It seems the shield, even when invisible, takes priority over fluids in the world. This can be quite annoying for valuable liquids such as the liquid starlight, and when it comes to farms. I believe that shields should not form where liquids are present, and should be treated as a solid block.
Versions: (Direwolf20 Pack 1.7.1)
- Minecraft: 1.12.2
- Forge: 14.23.1.2587
- McJtyLib: 2.6.2
- RFTools: 7.23
Vanilla Minecraft has a concept of ”replaceable” blocks. If a block is replaceable, you don't need to break it before placing another block where it is. The shield projector is currently programmed to use this check to determine where to place its shield blocks, as this is desirable in some cases (e.g., you don't want tall grass or snow layer blocks opening a hole in your shield). As you discovered, fluid blocks are replaceable. I'll look into adding a setting that makes the shield projector only place shields in air, rather than over any replaceable blocks.
In the meantime, it should be possible to accomplish the same effect by using a scanner to scan the target region first and select only air, then use the resulting scan as the shape for the shield.