Project Red - Core

Project Red - Core

42M Downloads

Some items dropping even in creative with doTileDrops off

eisenburg opened this issue ยท 3 comments

commented

Describe the bug
There are a couple of times that certain blocks (gates and wires) drop their item, even with /gamerule doTileDrops off
-When the block they're mounted on is broken
-When breaking lots of wires in quick succession

To Reproduce
Steps to reproduce the behavior:
--Block-mount broken--

  1. Place gate or non-frame wire on block
  2. Set doTileDrops to 'Off'
  3. Break block
  4. Wire or gate will 'pop off' (intended) and drop an item (not intended)

Expected behavior
The gate or wire to vanish, without leaving an item.

Versions

  • CCL Version: 3.2.2.353
  • FMP Version: 2.6.1.81
  • MrTJPCore Version: 2.1.4.43
  • ProjectRed Version: 4.9.3.116: Base, compat, fabrication, integration, lighting, mechanical

Screenshots/Videos
step1
step2
step3
step4

commented

I'm not familiar with this 'doTileDrops' setting. As far as I know, even in creative, if you break a block underneath some other tile that it was holding up, it will always drop. Should this not be the case? Also, does this only happen with gates and wires or other things as well?

commented

I'm not familiar with this 'doTileDrops setting'

In essence, doTileDrops is an argument for the /gamerule command (which you can read about at https://minecraft.gamepedia.com/Commands/gamerule) that turns off the drops of all blocks. This is very impactful in Survival, because breaking blocks of any kind will not yield item drops. The only effect it has on Creative is blocks with a 'parent' -- that is to say, any (usually non-solid) block that requires a (solid) block to be placed upon. Here's an (incomplete) list of examples:

  • Saplings
  • Tall Grass
  • Ferns
  • Flowers
  • Mushrooms
  • Torches
  • Vines
  • Ladders
  • Carpets
  • Banners
  • Redstone

Of course, by default it is set to true (meaning tiles will drop, which is normal behavior).

Should this not be the case?

Setting /gamerule doTileDrops false will (should) turn off all tile drops -- this means anything that has a 'parent block,' will no longer drop an item if its parent is broken. However, when I set /gamerule doTileDrops false, it does not disable item drops of this kind from ProjectRed.

Does this only happen with gates and wires or other things as well?

I did some testing, and this is the list I came up with:
Blocks that drop items when their 'parent' is broken, despite doTileDrops being off:

  • Red Alloy Wire
  • All 16 colors of Insulated Wire
  • All 17 colors of Bundled Cable
  • Low Load Power Line
  • All 35 gates and cells -- Everything from ProjectRed Integration, including the IC gate
  • All 32 Illumar Buttons
  • All 32 Lanterns
  • All 32 Fixtures
  • All 32 Fallout Lights
  • All 32 Cage Lamps
  • Solar Panel
commented

I did a little more testing and I think it might actually be a problem with Multipart, not ProjectRed. You see, breaking ProjectRed 'parented' blocks would drop items, but simply breaking them in Survival (e.g. with a pick) would also yield drops, and also occurred for all non-full-block blocks (the list in my previous post) but doing the same thing with Multipart Microblocks also yields drops that shouldn't exist, except that in order to get these erroneous drops, one needs to break them in Survival, a test I hadn't previously done. This also adds the 9 pipes from Transportation to the list of things that are dropping incorrectly, but more importantly everything in Microblock CBE.

Let me know if my explanation was clear enough on this one!