diff options
author | Caedis <Caedis@users.noreply.github.com> | 2024-01-27 14:29:08 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-27 21:29:08 +0100 |
commit | 3516447b38cbb435a5844c6b35cfe1b21b943815 (patch) | |
tree | 4e338721ea0bfddc13ea424c002eee50f248e65a /src/main/java/gregtech | |
parent | b2212929d4246b64381e42ae023fa4dcf7275c45 (diff) | |
download | GT5-Unofficial-3516447b38cbb435a5844c6b35cfe1b21b943815.tar.gz GT5-Unofficial-3516447b38cbb435a5844c6b35cfe1b21b943815.tar.bz2 GT5-Unofficial-3516447b38cbb435a5844c6b35cfe1b21b943815.zip |
Change chain spraying to only chain to the same kind of item (#2478)
Initial fix for only allow chain spraying the same kind of block you started with
Diffstat (limited to 'src/main/java/gregtech')
-rw-r--r-- | src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java index 11693b05d2..b2f88b58de 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java @@ -11,6 +11,7 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -107,6 +108,10 @@ public class Behaviour_Spray_Color extends Behaviour_None { } else { lookSide = look.zCoord > 0 ? ForgeDirection.SOUTH : ForgeDirection.NORTH; } + Block currentBlock = aWorld.getBlock(aX, aY, aZ); + int currentBlockMeta = aWorld.getBlockMetadata(aX, aY, aZ); + Class<? extends TileEntity> currentTE = aWorld.getTileEntity(aX, aY, aZ) + .getClass(); while ((GT_Utility.areStacksEqual(aStack, this.mUsed, true)) && (colorize(aWorld, aX, aY, aZ, side, aPlayer))) { GT_Utility.sendSoundToPlayers(aWorld, SoundResource.IC2_TOOLS_PAINTER, 1.0F, 1.0F, aX, aY, aZ); if (!aPlayer.capabilities.isCreativeMode) { @@ -125,6 +130,10 @@ public class Behaviour_Spray_Color extends Behaviour_None { case EAST -> aX += 1; default -> throw new IllegalArgumentException("Unexpected value: " + lookSide); } + + if (aWorld.getBlock(aX, aY, aZ) != currentBlock) break; + if (aWorld.getBlockMetadata(aX, aY, aZ) != currentBlockMeta) break; + if (!currentTE.isInstance(aWorld.getTileEntity(aX, aY, aZ))) break; } tNBT.removeTag("GT.RemainingPaint"); if (tUses > 0L) { |