diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayEnergy.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayEnergy.java index 191a7bb18..548257dd7 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayEnergy.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayEnergy.java @@ -214,7 +214,7 @@ public class TileEntityLaserRelayEnergy extends TileEntityLaserRelay { int trans = 0; int theoreticalReceived = cap.receiveEnergy(Math.min(amountPer, lowestCap), true); if (theoreticalReceived > 0) { - int deduct = this.calcDeduction(theoreticalReceived, highestLoss); + int deduct = this.calcDeduction(theoreticalReceived, highestLoss); // TODO maybe we do a minimum threshold before losses occur? if (deduct >= theoreticalReceived) { //Happens with small numbers deduct = 0; } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLongRangeBreaker.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLongRangeBreaker.java index 8429e02d0..c6582c16e 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLongRangeBreaker.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLongRangeBreaker.java @@ -12,6 +12,7 @@ package de.ellpeck.actuallyadditions.mod.tile; import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks; import de.ellpeck.actuallyadditions.mod.inventory.ContainerDirectionalBreaker; +import de.ellpeck.actuallyadditions.mod.items.ActuallyItems; import de.ellpeck.actuallyadditions.mod.util.ItemStackHandlerAA.IAcceptor; import de.ellpeck.actuallyadditions.mod.util.StackUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; @@ -104,7 +105,7 @@ public class TileEntityLongRangeBreaker extends TileEntityInventoryBase implemen Block blockToBreak = breakState.getBlock(); if (blockToBreak != null && !this.level.isEmptyBlock(coordsBlock) && this.level.getBlockState(coordsBlock).getDestroySpeed(this.level, coordsBlock) > -1.0F) { List drops = Block.getDrops(breakState, (ServerLevel) this.level, coordsBlock, this.level.getBlockEntity(coordsBlock)); - float chance = WorldUtil.fireFakeHarvestEventsForDropChance(this, drops, this.level, coordsBlock); + float chance = WorldUtil.fireFakeHarvestEventsForDropChance(this, this.level, coordsBlock); if (chance > 0 && this.level.random.nextFloat() <= chance) { if (StackUtil.canAddAll(this.inv, drops, false)) { diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityVerticalDigger.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityVerticalDigger.java index c1c3df6e2..2a12e9215 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityVerticalDigger.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityVerticalDigger.java @@ -13,6 +13,7 @@ package de.ellpeck.actuallyadditions.mod.tile; import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks; import de.ellpeck.actuallyadditions.mod.config.CommonConfig; import de.ellpeck.actuallyadditions.mod.inventory.ContainerMiner; +import de.ellpeck.actuallyadditions.mod.items.ActuallyItems; import de.ellpeck.actuallyadditions.mod.network.PacketHelperServer; import de.ellpeck.actuallyadditions.mod.network.gui.IButtonReactor; import de.ellpeck.actuallyadditions.mod.util.ItemStackHandlerAA.IAcceptor; @@ -139,7 +140,7 @@ public class TileEntityVerticalDigger extends TileEntityInventoryBase implements : 1); if (this.storage.getEnergyStored() >= actualUse) { BlockPos pos = new BlockPos(this.worldPosition.getX() + this.checkX, this.checkY, this.worldPosition.getZ() + this.checkZ); - ItemStack fakePickaxe = Items.NETHERITE_PICKAXE.getDefaultInstance(); + ItemStack fakePickaxe = new ItemStack(ActuallyItems.NETHERITE_AIOT.get()); BlockState state = this.level.getBlockState(pos); Block block = state.getBlock(); @@ -147,7 +148,7 @@ public class TileEntityVerticalDigger extends TileEntityInventoryBase implements if (!state.isAir()) { if (fakePickaxe.isCorrectToolForDrops(state) && state.getDestroySpeed(this.level, pos) >= 0F && this.isMinable(state, stack)) { List drops = Block.getDrops(state, (ServerLevel) this.level, pos, this.level.getBlockEntity(pos)); - float chance = WorldUtil.fireFakeHarvestEventsForDropChance(this, drops, this.level, pos); + float chance = WorldUtil.fireFakeHarvestEventsForDropChance(this, this.level, pos); if (chance > 0 && this.level.random.nextFloat() <= chance) { if (StackUtil.canAddAll(this.inv, drops, false)) { diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java index bac9e4bf6..715ea8986 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java @@ -12,6 +12,7 @@ package de.ellpeck.actuallyadditions.mod.util; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.ActuallyAdditionsClient; +import de.ellpeck.actuallyadditions.mod.items.ActuallyItems; import de.ellpeck.actuallyadditions.mod.tile.FilterSettings; import de.ellpeck.actuallyadditions.mod.util.compat.SlotlessableItemHandlerWrapper; import net.minecraft.core.BlockPos; @@ -257,9 +258,12 @@ public final class WorldUtil { } //I think something is up with this, but I'm not entirely certain what. - public static float fireFakeHarvestEventsForDropChance(BlockEntity caller, List drops, Level level, BlockPos pos) { + // TODO We really need to refactor this out of existence... -Flanks + public static float fireFakeHarvestEventsForDropChance(BlockEntity caller, Level level, BlockPos pos) { if (level instanceof ServerLevel) { FakePlayer fake = FakePlayerFactory.getMinecraft((ServerLevel) level); + ItemStack fakeTool = new ItemStack(ActuallyItems.NETHERITE_AIOT.get()); + fake.getInventory().items.set(fake.getInventory().selected, fakeTool); BlockPos tePos = caller.getBlockPos(); fake.setPos(tePos.getX() + 0.5, tePos.getY() + 0.5, tePos.getZ() + 0.5); BlockState state = level.getBlockState(pos);