diff options
Diffstat (limited to 'src/main/java/gregtech/common')
3 files changed, 111 insertions, 10 deletions
diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java index ff8d1c3e94..e1163f84eb 100644 --- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java +++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java @@ -130,6 +130,7 @@ import gregtech.common.items.behaviors.Behaviour_Scanner; import gregtech.common.items.behaviors.Behaviour_SensorKit; import gregtech.common.items.behaviors.Behaviour_Sonictron; import gregtech.common.items.behaviors.Behaviour_Spray_Color; +import gregtech.common.items.behaviors.Behaviour_Spray_Color_Remover; import gregtech.common.items.behaviors.Behaviour_WrittenBook; public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { @@ -1194,6 +1195,53 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { addItemBehavior(32000 + tLastID, tBehaviour); addItemBehavior(32001 + tLastID, tBehaviour); } + + ItemList.Spray_Color_Remover.set( + addItem( + tLastID = 465, + "Spray Can Solvent", + "Full", + new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 4L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 8L))); + ItemList.Spray_Color_Used_Remover.set( + addItem( + tLastID = 466, + "Spray Can Solvent", + "Used", + new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 3L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 6L), + SubTag.INVISIBLE)); + IItemBehaviour<GT_MetaBase_Item> tBehaviour = new Behaviour_Spray_Color_Remover( + ItemList.Spray_Empty.get(1L), + ItemList.Spray_Color_Used_Remover.get(1L), + ItemList.Spray_Color_Remover.get(1L), + 1024L); + addItemBehavior(32000 + 465, tBehaviour); + addItemBehavior(32000 + 466, tBehaviour); + + ItemList.Spray_Color_Remover_Empty.set( + addItem( + tLastID = 467, + "Empty Spray Can Solvent Cannister", + "Used for making Spray Can Solvent", + new ItemData( + Materials.Aluminium, + OrePrefixes.plateDouble.mMaterialAmount * 4L, + Materials.Redstone, + OrePrefixes.dust.mMaterialAmount), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L))); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), + ItemList.Large_Fluid_Cell_Aluminium.get(1), + GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(ItemList.Spray_Color_Remover_Empty.get(1L)) + .duration(40 * SECONDS) + .eut(1) + .addTo(sAssemblerRecipes); + ItemList.Tool_Matches.set( addItem( tLastID = 471, @@ -1217,11 +1265,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L))); - IItemBehaviour<GT_MetaBase_Item> tBehaviour = new Behaviour_Lighter( - null, - ItemList.Tool_Matches.get(1L), - ItemList.Tool_Matches.get(1L), - 1L); + tBehaviour = new Behaviour_Lighter(null, ItemList.Tool_Matches.get(1L), ItemList.Tool_Matches.get(1L), 1L); addItemBehavior(32471, tBehaviour); tBehaviour = new Behaviour_Lighter( null, @@ -4570,7 +4614,7 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { @Override public ItemStack getContainerItem(ItemStack aStack) { int aDamage = aStack.getItemDamage(); - if ((aDamage >= 32430) && (aDamage <= 32461)) { + if (((aDamage >= 32430) && (aDamage <= 32461)) || (aDamage == 32465 || aDamage == 32466)) { return ItemList.Spray_Empty.get(1L); } if ((aDamage == 32479) || (aDamage == 32476)) { 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; + } +} |