aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/items/behaviors
diff options
context:
space:
mode:
authorCaedis <Caedis@users.noreply.github.com>2024-01-27 14:29:08 -0600
committerGitHub <noreply@github.com>2024-01-27 21:29:08 +0100
commit3516447b38cbb435a5844c6b35cfe1b21b943815 (patch)
tree4e338721ea0bfddc13ea424c002eee50f248e65a /src/main/java/gregtech/common/items/behaviors
parentb2212929d4246b64381e42ae023fa4dcf7275c45 (diff)
downloadGT5-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/common/items/behaviors')
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java9
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) {