BuildCraft|Factory

BuildCraft|Factory

7M Downloads

During initial clearing phase of the quarray, breaking monster egg blocks fails to spawn silverfish

snakemasterepic opened this issue ยท 3 comments

commented

BuildCraft version: 7.99.14
Forge version: 14.23.1.2555
Link to crash report or log:
Singleplayer or multiplayer: Confirmed Singleplayer; Possible: Multiplayer
Additional information:

Summary:
When the quarry is in its initial clearing phase, if it breaks a monster egg block of any type, the silverfish fails to spawn.

Repro steps:

  1. Launch Minecraft with Buildcraft 7.99.14 installed.
  2. Create a new world with game mode set to creative.
  3. Ensure that the difficulty is set to at least Easy.
  4. Place a quarry anywhere in the world.
  5. Place at least one monster egg block on the inside of the quarry's frame.
  6. Power the quarry and place a chest next to it so that it can begin mining.

Observed Result:
The quarry breaks the monster egg, but the no silverfish spawn.

Expected Result:
Upon breaking the monster egg, a silverfish spawns at the location of the broken monster egg block.

Notes

  • This issue only applies to monster egg blocks within the frame of the quarry that get cleared away by the red beam. Monster eggs mined by the actual quarry drill still spawn silverfish.
  • This issue has been reproduced in survival mode, but not in multiplayer.

2018-01-23_23 09 07

commented

intended behaviour and i don't think we want to change that (or realy can in a decent way), the initial clearing doesn't just break blocks like normal block breaks as it actually voids them, there are no drops or anything triggered (thus the silverfish are not spawned)

commented

This makes the quarry an easy way to cheat out of fighting silverfish, I'll at least take a look to see if thIs can be easily fixed

commented

Unfortunately it looks like silverfish spawn in the dropBlockAsItemWithChance() method, so we'll have to add some sort of special case system for normal block breaks.

Also, we have block breaking code duplicated in a lot of places. Ideally we would move all of them into one class, which could also have special-cases.