Tech Reborn

Tech Reborn

30M Downloads

Block Breaker has unexpected behavior.

PhilippeDunbar opened this issue ยท 2 comments

commented

Describe the bug
Expected Block Breaker to break blocks like a tool, however block breaker has unexpected behavior.

I've found a few different issues.

  1. Silk Touches Most Blocks ( I expected it to work like an un-enchanted tool )
  2. Clears Blocks NBT Data
  3. Can Obtain blocks that are normally unobtainable

I think this may be easier to explain with examples, this is a non-exhaustive list of examples:

Original: Stone
Expected: Cobblestone
Actual: Stone

Original: Deepslate
Expected: Cobbled Deepslate
Actual: Deepslate

Original: Amethyst Cluster
Expected: Amethyst Shard
Actual: Amethyst Cluster

Original: Budding Amethyst
Expected: Nothing (should break the block without receiving anything)
Actual: Budding Amethyst

Original: Zombie Spawner (probably any spawner, but I only tested zombie spawner)
Expected: Experience Orbs
Actual: Pig Spawner (cleared NBT?)

Original: Sculk
Expected: Experience Orbs
Actual: Sculk

Original: Shulker Box with assorted items
Expected: Shulker Box with original items
Actual: Empty Shulker Box (Cleared NBT??)

Steps to Reproduce

  1. Place block breaker facing a block in the bug description's list
  2. Provide Power to block breaker
  3. Wait for block breaker to break block
  4. check block breaker's inventory

Screenshots
I don't believe a screenshot is needed.

Environment (please complete the following information with the version):

  • Minecraft: 1.19.2
  • Mod Loader: Fabric 0.14.9

Custom modpack:
AdditionalEnchantedMiner-1.19-fabric-19.1.672.jar
AxesAreWeapons-1.6.0-fabric-1.17.1.jar
BuildingWands_mc1.19.2-2.6.3_release-fabric.jar
ExtendedDrawers-1.3.4+mc.1.19.2.jar
FallingTree-1.19.2-3.11.0a1.jar
Infinity-Water-Bucket-Fabric-1.19-2.0.0.jar
Modern-Dynamics-0.3.3-beta.jar
MouseTweaks-fabric-mc1.19-2.22.jar
OverpoweredMending-1.19.2-2.8.2.jar
RebornCore-5.3.4.jar
RoughlyEnoughItems-9.1.555.jar
TechReborn-5.3.4.jar
XaerosWorldMap_1.28.1_Fabric_1.19.1.jar
Xaeros_Minimap_22.16.0_Fabric_1.19.1.jar
appleskin-fabric-mc1.19-2.4.1.jar
architectury-6.3.49-fabric.jar
badpackets-fabric-0.2.0.jar
carpet-extra-1.19.1-1.4.83.jar
cloth-config-8.2.88-fabric.jar
dark-loading-screen-1.6.12.jar
deepslatecutting-fabric-1.5.0.jar
easiervillagertrading-1.19.1-fabric0.58.5-1.5.4.jar
ellemes-container-library-2.1.0-alpha.9+1.19-fabric.jar
enchantedshulkers-1.0.4+1.19.jar
enderchests-fabric-1.19-1.1.0.jar
expanded-axe-enchanting-1.0.4.jar
expanded-trident-enchanting-1.0.4.jar
expandedstorage-8.1.0-alpha.2+1.19-fabric.jar
fabric-api-0.64.0+1.19.2.jar
fabric-carpet-1.19.2-1.4.84+v221018.jar
fabric-language-kotlin-1.8.5+kotlin.1.7.20.jar
freecam-modrinth-1.1.6+1.19.jar
immersive-portals-2.2.5-mc1.19.2-fabric.jar
indium-1.0.9+mc1.19.2.jar
infinitevillagertrading-1.19.1-fabric0.58.5-1.1.jar
infinityfix-1.0.0.jar
infwithmend-fabric-1.19.2-1.0.0.jar
jamlib-0.5.0.jar
kibe-1.9.10-BETA+1.19.jar
lithium-fabric-mc1.19.2-0.10.0.jar
malilib-fabric-1.19.2-0.13.0.jar
megane-8.3.0.jar
minihud-fabric-1.19.2-0.23.3.jar
modmenu-4.0.6.jar
phosphor-fabric-mc1.19.x-0.8.1 (1).jar
projectsavethepets-3.2.0+2022.e000b2a529.fabric.jar
rightclickharvest-3.0.2.jar
shetiphiancore-fabric-1.19-1.3.1.jar
showdurability-1.0.0+1.19.jar
slotlink-5.0.1.jar
sodium-fabric-mc1.19.2-0.4.4+build.18.jar
toms_storage_fabric-1.19-1.4.3.jar
trade-cycling-fabric-1.19.2-1.0.5.jar
wthit-fabric-5.13.3.jar
youre-in-grave-danger-1.4.4.jar

Logs
N/A

Additional context
I do like some aspects of the current behavior, If it retained NBT and Silk touch was toggle-able that would be great. (or two different machines?)

My specific use case was I have a Silk Touch Quarry running from QuarryPlus and its creating LOTS of Deepslate which has very few uses, I wanted to break down the silk touched deepslate into the far more useful cobbled deepslate so I can process those into deepslate tiles - one of the primary building blocks for my base.

Tech Reborn is the primary tech mod for my custom pack and It appears I can only process deepslate into gravel (great for making arrows) but not so much for building blocks.

I thought I could use the block placer & Block breaker to automate breaking down the deepslate into cobbled deepslate.

commented

Added additional details about the custom modpack I'm playing on.

commented

Thanks, however this issue is in TR only.

The code that needs to be changed is in:
techreborn.blockentity.machine.tier0.block.blockbreaker.BlockBreakerProcessor#onTick

The issue with silktouch/not silktouch is that when breaking a block that drops more than 1 item, it could happen that the internal inventory could be overful, so either we had to drop the extra item or delete it right away. Both doesnt feel right.

At least the breaker doesn't also eat container contents from chests/barrels etc