diff options
author | Caedis <Caedis@users.noreply.github.com> | 2023-10-23 14:07:25 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-23 14:07:25 -0500 |
commit | 04c1248281f3c067e2ba4a979e7d363704b06663 (patch) | |
tree | 6d0841172f39b23d62d18f3c0e75aa802db80ccd /src/main/java/gregtech/common/items/behaviors | |
parent | d3eeacdeb9a7e0bb64f608dd92eb06002acf0ffe (diff) | |
download | GT5-Unofficial-04c1248281f3c067e2ba4a979e7d363704b06663.tar.gz GT5-Unofficial-04c1248281f3c067e2ba4a979e7d363704b06663.tar.bz2 GT5-Unofficial-04c1248281f3c067e2ba4a979e7d363704b06663.zip |
Backport paint solvent from GTCEu (#2346)
Diffstat (limited to 'src/main/java/gregtech/common/items/behaviors')
-rw-r--r-- | src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java | 17 | ||||
-rw-r--r-- | src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color_Remover.java | 48 |
2 files changed, 61 insertions, 4 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 f7e7571c9e..11693b05d2 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 @@ -40,18 +40,18 @@ public class Behaviour_Spray_Color extends Behaviour_None { Blocks.stained_glass_pane, Blocks.carpet, Blocks.hardened_clay); - private final String mTooltip; + protected String mTooltip; private final String mTooltipUses = GT_LanguageManager .addStringLocalization("gt.behaviour.paintspray.uses", "Remaining Uses:"); private final String mTooltipUnstackable = GT_LanguageManager .addStringLocalization("gt.behaviour.unstackable", "Not usable when stacked!"); private final String mTooltipChain = GT_LanguageManager.addStringLocalization( "gt.behaviour.paintspray.chain", - "If used while sneaking it will paint a chain of blocks"); + "If used while sneaking it will spray a chain of blocks"); private final String mTooltipChainAmount = GT_LanguageManager.addStringLocalization( "gt.behaviour.paintspray.chain", - "Paints up to %d blocks, in the direction you're looking at"); + "Sprays up to %d blocks, in the direction you're looking at"); public Behaviour_Spray_Color(ItemStack aEmpty, ItemStack aUsed, ItemStack aFull, long aUses, int aColor) { this.mEmpty = aEmpty; @@ -64,6 +64,15 @@ public class Behaviour_Spray_Color extends Behaviour_None { "Can Color things in " + Dyes.get(this.mColor).mName); } + public Behaviour_Spray_Color(ItemStack aEmpty, ItemStack aUsed, ItemStack aFull, long aUses) { + this.mEmpty = aEmpty; + this.mUsed = aUsed; + this.mFull = aFull; + this.mUses = aUses; + this.mColor = 0; + mTooltip = ""; + } + @Override public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) { @@ -137,7 +146,7 @@ public class Behaviour_Spray_Color extends Behaviour_None { return rOutput; } - private boolean colorize(World aWorld, int aX, int aY, int aZ, ForgeDirection side, EntityPlayer player) { + protected boolean colorize(World aWorld, int aX, int aY, int aZ, ForgeDirection side, EntityPlayer player) { final Block aBlock = aWorld.getBlock(aX, aY, aZ); if (aBlock != Blocks.air) { if (this.mAllowedVanillaBlocks.contains(aBlock) || aBlock instanceof BlockColored) { diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color_Remover.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color_Remover.java new file mode 100644 index 0000000000..0b73b4f7fc --- /dev/null +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color_Remover.java @@ -0,0 +1,48 @@ +package gregtech.common.items.behaviors; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import appeng.api.implementations.tiles.IColorableTile; +import appeng.api.util.AEColor; +import appeng.block.networking.BlockCableBus; +import gregtech.api.interfaces.tileentity.IColoredTileEntity; +import gregtech.api.util.GT_LanguageManager; + +public class Behaviour_Spray_Color_Remover extends Behaviour_Spray_Color { + + public Behaviour_Spray_Color_Remover(ItemStack aEmpty, ItemStack aUsed, ItemStack aFull, long aUses) { + super(aEmpty, aUsed, aFull, aUses); + this.mTooltip = GT_LanguageManager + .addStringLocalization("gt.behaviour.paintspray.solvent.tooltip", "Can remove paint from things"); + } + + @Override + protected boolean colorize(World aWorld, int aX, int aY, int aZ, ForgeDirection side, EntityPlayer player) { + final Block aBlock = aWorld.getBlock(aX, aY, aZ); + if (aBlock != Blocks.air) { + if (aBlock instanceof IColorableTile) { + return ((IColorableTile) aBlock).recolourBlock(side, AEColor.Transparent, player); + } + + if (aBlock instanceof BlockCableBus) { + return ((BlockCableBus) aBlock) + .recolourBlock(aWorld, aX, aY, aZ, side, AEColor.Transparent.ordinal(), player); + } + + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if (tTileEntity instanceof IColoredTileEntity gte) { + if (gte.getColorization() >= 0) { + gte.setColorization((byte) -1); + return true; + } + } + } + return false; + } +} |