aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/core/item/ModItems.java57
-rw-r--r--src/Java/gtPlusPlus/core/item/general/ItemBasicScrubberTurbine.java147
-rw-r--r--src/Java/gtPlusPlus/core/slots/SlotPollutionScrubber.java66
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/CONTAINER_PollutionCleaner.java207
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/GUI_PollutionCleaner.java16
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java49
6 files changed, 350 insertions, 192 deletions
diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java
index 963d6203cc..1e0b779bac 100644
--- a/src/Java/gtPlusPlus/core/item/ModItems.java
+++ b/src/Java/gtPlusPlus/core/item/ModItems.java
@@ -4,21 +4,15 @@ import static gtPlusPlus.core.creative.AddToCreativeTab.tabMisc;
import static gtPlusPlus.core.lib.CORE.LOAD_ALL_CONTENT;
import cpw.mods.fml.common.registry.GameRegistry;
-import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.util.GT_OreDictUnificator;
-import gregtech.common.items.GT_VolumetricFlask;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.block.base.BasicBlock.BlockTypes;
import gtPlusPlus.core.block.base.BlockBaseModular;
import gtPlusPlus.core.common.compat.COMPAT_Baubles;
import gtPlusPlus.core.creative.AddToCreativeTab;
-import gtPlusPlus.core.item.base.BaseEuItem;
-import gtPlusPlus.core.item.base.BaseItemBackpack;
+import gtPlusPlus.core.item.base.*;
import gtPlusPlus.core.item.base.BaseItemComponent.ComponentTypes;
-import gtPlusPlus.core.item.base.BaseItemDamageable;
-import gtPlusPlus.core.item.base.BaseItemTCShard;
-import gtPlusPlus.core.item.base.CoreItem;
import gtPlusPlus.core.item.base.foil.BaseItemFoil;
import gtPlusPlus.core.item.base.foods.BaseItemFood;
import gtPlusPlus.core.item.base.foods.BaseItemHotFood;
@@ -29,34 +23,12 @@ import gtPlusPlus.core.item.base.misc.BaseItemMisc;
import gtPlusPlus.core.item.base.misc.BaseItemMisc.MiscTypes;
import gtPlusPlus.core.item.base.plates.BaseItemPlate;
import gtPlusPlus.core.item.base.plates.BaseItemPlateDouble;
-import gtPlusPlus.core.item.bauble.BatteryPackBaseBauble;
-import gtPlusPlus.core.item.bauble.HealthBoostBauble;
-import gtPlusPlus.core.item.bauble.ModularBauble;
-import gtPlusPlus.core.item.bauble.MonsterKillerBaseBauble;
-import gtPlusPlus.core.item.chemistry.AgriculturalChem;
-import gtPlusPlus.core.item.chemistry.CoalTar;
-import gtPlusPlus.core.item.chemistry.GenericChem;
-import gtPlusPlus.core.item.chemistry.IonParticles;
-import gtPlusPlus.core.item.chemistry.MilledOreProcessing;
-import gtPlusPlus.core.item.chemistry.NuclearChem;
-import gtPlusPlus.core.item.chemistry.RocketFuels;
-import gtPlusPlus.core.item.chemistry.StandardBaseParticles;
+import gtPlusPlus.core.item.bauble.*;
+import gtPlusPlus.core.item.chemistry.*;
import gtPlusPlus.core.item.crafting.ItemDummyResearch;
import gtPlusPlus.core.item.effects.RarityUncommon;
import gtPlusPlus.core.item.food.BaseItemMetaFood;
-import gtPlusPlus.core.item.general.BaseItemGrindle;
-import gtPlusPlus.core.item.general.BufferCore;
-import gtPlusPlus.core.item.general.ItemAirFilter;
-import gtPlusPlus.core.item.general.ItemAreaClear;
-import gtPlusPlus.core.item.general.ItemBasicFirestarter;
-import gtPlusPlus.core.item.general.ItemBlueprint;
-import gtPlusPlus.core.item.general.ItemControlCore;
-import gtPlusPlus.core.item.general.ItemEmpty;
-import gtPlusPlus.core.item.general.ItemGemShards;
-import gtPlusPlus.core.item.general.ItemGenericToken;
-import gtPlusPlus.core.item.general.ItemGiantEgg;
-import gtPlusPlus.core.item.general.ItemHalfCompleteCasings;
-import gtPlusPlus.core.item.general.ItemLavaFilter;
+import gtPlusPlus.core.item.general.*;
import gtPlusPlus.core.item.general.books.ItemBaseBook;
import gtPlusPlus.core.item.general.capture.ItemEntityCatcher;
import gtPlusPlus.core.item.general.chassis.ItemBoilerChassis;
@@ -74,20 +46,12 @@ import gtPlusPlus.core.item.tool.misc.SandstoneHammer;
import gtPlusPlus.core.item.tool.misc.box.AutoLunchBox;
import gtPlusPlus.core.item.tool.misc.box.MagicToolBag;
import gtPlusPlus.core.item.tool.misc.box.UniversalToolBox;
-import gtPlusPlus.core.item.tool.staballoy.MultiPickaxeBase;
-import gtPlusPlus.core.item.tool.staballoy.MultiSpadeBase;
-import gtPlusPlus.core.item.tool.staballoy.StaballoyAxe;
-import gtPlusPlus.core.item.tool.staballoy.StaballoyPickaxe;
+import gtPlusPlus.core.item.tool.staballoy.*;
import gtPlusPlus.core.item.wearable.WearableLoader;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.CORE.ConfigSwitches;
import gtPlusPlus.core.lib.LoadedMods;
-import gtPlusPlus.core.material.ALLOY;
-import gtPlusPlus.core.material.ELEMENT;
-import gtPlusPlus.core.material.MISC_MATERIALS;
-import gtPlusPlus.core.material.Material;
-import gtPlusPlus.core.material.MaterialGenerator;
-import gtPlusPlus.core.material.NONMATERIAL;
+import gtPlusPlus.core.material.*;
import gtPlusPlus.core.material.nuclear.FLUORIDES;
import gtPlusPlus.core.material.nuclear.NUCLIDE;
import gtPlusPlus.core.recipe.common.CI;
@@ -106,11 +70,8 @@ import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
import gtPlusPlus.xmod.gregtech.common.helpers.VolumetricFlaskHelper;
import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechItems;
-import net.minecraft.item.EnumRarity;
-import net.minecraft.item.Item;
+import net.minecraft.item.*;
import net.minecraft.item.Item.ToolMaterial;
-import net.minecraft.item.ItemFood;
-import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.common.util.EnumHelper;
import net.minecraftforge.fluids.Fluid;
@@ -300,6 +261,7 @@ public final class ModItems {
public static Item itemSugarCoke;
public static Item itemCircuitLFTR;
+ public static Item itemBasicTurbine;
public static Item itemDebugAreaClear;
@@ -757,6 +719,9 @@ public final class ModItems {
//LFTR Control Circuit
itemCircuitLFTR = new CoreItem("itemCircuitLFTR", ""+EnumChatFormatting.GREEN+"Control Circuit", AddToCreativeTab.tabMisc, 1, 0, new String[] {"Keeps Multiblocks Stable"}, EnumRarity.epic, EnumChatFormatting.DARK_GREEN, false, null);
+ if (CORE.ConfigSwitches.enableMachine_Pollution) {
+ itemBasicTurbine = new ItemBasicScrubberTurbine();
+ }
//Zirconium
//Cinter Pellet.
diff --git a/src/Java/gtPlusPlus/core/item/general/ItemBasicScrubberTurbine.java b/src/Java/gtPlusPlus/core/item/general/ItemBasicScrubberTurbine.java
new file mode 100644
index 0000000000..bd8159eb01
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/item/general/ItemBasicScrubberTurbine.java
@@ -0,0 +1,147 @@
+package gtPlusPlus.core.item.general;
+import java.util.List;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IIcon;
+
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.Utils;
+
+public class ItemBasicScrubberTurbine extends Item {
+
+ public IIcon[] icons = new IIcon[1];
+
+ public ItemBasicScrubberTurbine() {
+ super();
+ this.setHasSubtypes(true);
+ String unlocalizedName = "itemBasicTurbine";
+ this.setUnlocalizedName(unlocalizedName);
+ this.setCreativeTab(AddToCreativeTab.tabMisc);
+ this.setMaxStackSize(1);
+ GameRegistry.registerItem(this, unlocalizedName);
+ }
+
+ @Override
+ public void registerIcons(IIconRegister reg) {
+ this.icons[0] = reg.registerIcon(CORE.MODID + ":" + "itemBasicTurbine");
+ }
+
+ @Override
+ public IIcon getIconFromDamage(int meta) {
+ return this.icons[0];
+ }
+
+ @Override
+ public void getSubItems(Item item, CreativeTabs tab, List list) {
+ for (int i = 0; i < 2; i ++) {
+ list.add(new ItemStack(item, 1, i));
+ }
+ }
+
+ @Override
+ public String getUnlocalizedName(ItemStack stack) {
+ return this.getUnlocalizedName() + "_" + stack.getItemDamage();
+ }
+
+ @Override
+ public String getItemStackDisplayName(final ItemStack tItem) {
+ if (tItem == null) {
+ return "Basic Turbine";
+ }
+ return super.getItemStackDisplayName(tItem);
+ }
+
+ @Override
+ public int getColorFromItemStack(final ItemStack stack, int HEX_OxFFFFFF) {
+ int meta = stack.getItemDamage();
+ if (meta == 0){
+ HEX_OxFFFFFF = Utils.rgbtoHexValue(200,200,200);
+ }
+ if (meta == 1){
+ HEX_OxFFFFFF = Utils.rgbtoHexValue(255,128,0);
+ }
+ return HEX_OxFFFFFF;
+ }
+
+ private static boolean createNBT(ItemStack rStack){
+ final NBTTagCompound tagMain = new NBTTagCompound();
+ final NBTTagCompound tagNBT = new NBTTagCompound();
+ tagNBT.setLong("Damage", 0);
+ tagMain.setTag("BasicTurbine", tagNBT);
+ rStack.setTagCompound(tagMain);
+ return true;
+ }
+
+ public static final long getFilterDamage(final ItemStack aStack) {
+ NBTTagCompound aNBT = aStack.getTagCompound();
+ if (aNBT != null) {
+ aNBT = aNBT.getCompoundTag("BasicTurbine");
+ if (aNBT != null) {
+ return aNBT.getLong("Damage");
+ }
+ }
+ else {
+ createNBT(aStack);
+ }
+ return 0L;
+ }
+
+ public static final boolean setFilterDamage(final ItemStack aStack, final long aDamage) {
+ NBTTagCompound aNBT = aStack.getTagCompound();
+ if (aNBT != null) {
+ aNBT = aNBT.getCompoundTag("BasicTurbine");
+ if (aNBT != null) {
+ aNBT.setLong("Damage", aDamage);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public int getMaxDurability(ItemStack aStack) {
+ if (aStack != null) {
+ int aMeta = aStack.getItemDamage();
+ if (aMeta == 0) {
+ return 2500;
+ }
+ if (aMeta == 1) {
+ return 5000;
+ }
+ }
+ return 0;
+ }
+
+ @Override
+ public double getDurabilityForDisplay(ItemStack stack) {
+ if (stack.getTagCompound() == null){
+ createNBT(stack);
+ }
+ double currentDamage = getFilterDamage(stack);
+ double meta = getMaxDurability(stack);
+ double durabilitypercent = currentDamage / meta;
+ return durabilitypercent;
+ }
+
+ @Override
+ public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
+ list.add(EnumChatFormatting.GRAY+"An early tier Turbine for Atmospheric Reconditioning.");
+ int maxDamage = getMaxDurability(stack);
+ list.add(EnumChatFormatting.GRAY+""+(maxDamage-getFilterDamage(stack))+"/"+maxDamage+" uses left.");
+ super.addInformation(stack, player, list, bool);
+ }
+
+ @Override
+ public boolean showDurabilityBar(ItemStack stack) {
+ return true;
+ }
+
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/slots/SlotPollutionScrubber.java b/src/Java/gtPlusPlus/core/slots/SlotPollutionScrubber.java
new file mode 100644
index 0000000000..6dd3745d09
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/slots/SlotPollutionScrubber.java
@@ -0,0 +1,66 @@
+package gtPlusPlus.core.slots;
+
+import java.util.HashMap;
+
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.core.item.general.ItemAirFilter;
+import gtPlusPlus.core.item.general.ItemBasicScrubberTurbine;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.recipe.common.CI;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.inventory.Slot;
+import net.minecraft.item.ItemStack;
+
+public class SlotPollutionScrubber extends Slot {
+
+ private final int mType;
+ private final int mTier;
+
+ private static HashMap<Integer, ItemStack> mConveyorMap = new HashMap<Integer, ItemStack>();
+
+ static {
+ for (int i=0; i<(CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK ? 9 : 5); i++) {
+ mConveyorMap.put(i, CI.getConveyor(i, 1));
+ }
+ }
+
+ public SlotPollutionScrubber(final int aType, final int aTier, final IInventory inventory, final int slot, final int x, final int y) {
+ super(inventory, slot, x, y);
+ mType = aType;
+ mTier = aTier;
+ }
+
+ @Override
+ public synchronized boolean isItemValid(final ItemStack itemstack) {
+ return isItemValidForSlot(this, itemstack);
+ }
+
+ public static synchronized boolean isItemValidForSlot(final SlotPollutionScrubber aSlot, final ItemStack itemstack) {
+ if (aSlot.mType == 0) {
+ if (itemstack.getItem() instanceof ItemBasicScrubberTurbine) {
+ return true;
+ }
+ if (itemstack.getItem() instanceof GT_MetaGenerated_Tool && itemstack.getItemDamage() >= 170 && itemstack.getItemDamage() <= 179){
+ return true;
+ }
+ }
+ else if (aSlot.mType == 1) {
+ if (itemstack.getItem() instanceof ItemAirFilter) {
+ return true;
+ }
+ }
+ else if (aSlot.mType == 2) {
+ ItemStack aConveyorStack = mConveyorMap.get(aSlot.mTier);
+ if (GT_Utility.areStacksEqual(itemstack, aConveyorStack, true)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public int getSlotStackLimit() {
+ return 1;
+ }
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/CONTAINER_PollutionCleaner.java b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/CONTAINER_PollutionCleaner.java
index e3365935aa..79d1033bd0 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/CONTAINER_PollutionCleaner.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/CONTAINER_PollutionCleaner.java
@@ -14,6 +14,8 @@ import net.minecraft.item.ItemStack;
import gregtech.api.gui.*;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.slots.SlotPollutionScrubber;
import gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GregtechMetaAtmosphericReconditioner;
/**
@@ -23,132 +25,81 @@ import gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GregtechMetaA
*/
public class CONTAINER_PollutionCleaner extends GT_Container_BasicTank {
- public boolean mFluidTransfer = false, mItemTransfer = false, mStuttering = false;
- public int mReduction = 0;
-
- public CONTAINER_PollutionCleaner(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) {
- super(aInventoryPlayer, aTileEntity);
- }
-
- @Override
- public void addSlots(InventoryPlayer aInventoryPlayer) {
- addSlotToContainer(new GT_Slot_Holo(mTileEntity, 0, 8, 63, false, true, 1));
- addSlotToContainer(new GT_Slot_Holo(mTileEntity, 0, 26, 63, false, true, 1));
- addSlotToContainer(new GT_Slot_Render(mTileEntity, 2, 107, 63));
-
- int tStartIndex = ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).getInputSlot();
-
- switch (((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mInputSlotCount) {
- case 2: //Pollution Scrubber
- //Add 2 Item Slots
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 107, 25));
- break;
- default:
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 7));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 7));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 7));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 25));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 25));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 43));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 43));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 43));
- break;
- }
-
- tStartIndex = ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).getOutputSlot();
-
- switch (((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mOutputItems.length) {
- case 0:
- break;
- default:
- break;
- }
-
- addSlotToContainer(new Slot(mTileEntity, 1, 80, 63));
- addSlotToContainer(new Slot(mTileEntity, 3, 125, 63));
- //addSlotToContainer(new GT_Slot_Render(mTileEntity, tStartIndex++, 53, 63));
- }
-
- @Override
- public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) {
- switch (aSlotIndex) {
- case 0:
- if (mTileEntity.getMetaTileEntity() == null) return null;
- ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mFluidTransfer = !((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mFluidTransfer;
- return null;
- case 1:
- if (mTileEntity.getMetaTileEntity() == null) return null;
- ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mItemTransfer = !((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mItemTransfer;
- return null;
- default:
- return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer);
- }
- }
-
- @Override
- public void detectAndSendChanges() {
- super.detectAndSendChanges();
- if (mTileEntity.isClientSide() || mTileEntity.getMetaTileEntity() == null) return;
-
- mFluidTransfer = ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mFluidTransfer;
- mItemTransfer = ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mItemTransfer;
- mStuttering = ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mStuttering;
- mReduction = ((GregtechMetaAtmosphericReconditioner) mTileEntity.getMetaTileEntity()).mPollutionReduction;
-
- Iterator var2 = this.crafters.iterator();
- while (var2.hasNext()) {
- ICrafting var1 = (ICrafting) var2.next();
- var1.sendProgressBarUpdate(this, 102, mFluidTransfer ? 1 : 0);
- var1.sendProgressBarUpdate(this, 103, mItemTransfer ? 1 : 0);
- var1.sendProgressBarUpdate(this, 104, mStuttering ? 1 : 0);
- var1.sendProgressBarUpdate(this, 105, mReduction);
- }
- }
-
- @Override
- public void addCraftingToCrafters(ICrafting par1ICrafting) {
- super.addCraftingToCrafters(par1ICrafting);
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public void updateProgressBar(int par1, int par2) {
- super.updateProgressBar(par1, par2);
- switch (par1) {
- case 102:
- mFluidTransfer = (par2 != 0);
- break;
- case 103:
- mItemTransfer = (par2 != 0);
- break;
- case 104:
- mStuttering = (par2 != 0);
- break;
- case 105:
- mReduction = (par2);
- break;
- }
- }
-
- @Override
- public int getSlotStartIndex() {
- return 3;
- }
-
- @Override
- public int getShiftClickStartIndex() {
- return 3;
- }
-
- @Override
- public int getSlotCount() {
- return getShiftClickSlotCount() + ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mOutputItems.length + 2;
- }
-
- @Override
- public int getShiftClickSlotCount() {
- return ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mInputSlotCount;
- }
+ public boolean mFluidTransfer = false, mItemTransfer = false, mStuttering = false;
+ public int mReduction = 0;
+
+ public CONTAINER_PollutionCleaner(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) {
+ super(aInventoryPlayer, aTileEntity);
+ }
+
+ @Override
+ public void addSlots(InventoryPlayer aInventoryPlayer) {
+
+ int tStartIndex = ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).getInputSlot();
+ int aTier = ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mTier;
+
+
+ //Add 2 Item Slots
+ addSlotToContainer(new SlotPollutionScrubber(0, aTier, mTileEntity, tStartIndex++, 53, 25));
+ addSlotToContainer(new SlotPollutionScrubber(1, aTier, mTileEntity, tStartIndex++, 107, 25));
+ // Upgrade Slot
+ addSlotToContainer(new SlotPollutionScrubber(2, aTier, mTileEntity, tStartIndex++, 125, 63));
+
+ }
+
+ @Override
+ public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) {
+ Logger.INFO("Clicked on slot "+aSlotIndex);
+ return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer);
+ }
+
+ @Override
+ public void detectAndSendChanges() {
+ super.detectAndSendChanges();
+ if (mTileEntity.isClientSide() || mTileEntity.getMetaTileEntity() == null) return;
+
+ mReduction = ((GregtechMetaAtmosphericReconditioner) mTileEntity.getMetaTileEntity()).mPollutionReduction;
+
+ Iterator var2 = this.crafters.iterator();
+ while (var2.hasNext()) {
+ ICrafting var1 = (ICrafting) var2.next();
+ var1.sendProgressBarUpdate(this, 105, mReduction);
+ }
+ }
+
+ @Override
+ public void addCraftingToCrafters(ICrafting par1ICrafting) {
+ super.addCraftingToCrafters(par1ICrafting);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void updateProgressBar(int par1, int par2) {
+ super.updateProgressBar(par1, par2);
+ switch (par1) {
+ case 105:
+ mReduction = (par2);
+ break;
+ }
+ }
+
+ @Override
+ public int getSlotStartIndex() {
+ return 0;
+ }
+
+ @Override
+ public int getShiftClickStartIndex() {
+ return 0;
+ }
+
+ @Override
+ public int getSlotCount() {
+ return getShiftClickSlotCount();
+ }
+
+ @Override
+ public int getShiftClickSlotCount() {
+ return 3;
+ }
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/GUI_PollutionCleaner.java b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/GUI_PollutionCleaner.java
index 2c1601cee2..7a9417eeb6 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/GUI_PollutionCleaner.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/GUI_PollutionCleaner.java
@@ -3,16 +3,10 @@ package gtPlusPlus.xmod.gregtech.api.gui.basic;
import java.util.ArrayList;
import java.util.List;
-import net.minecraft.entity.player.InventoryPlayer;
-
import gregtech.api.gui.GT_GUIContainerMetaTile_Machine;
-import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.util.GT_Utility;
import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.util.math.MathUtils;
-import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_ControlCore;
-import gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GregtechMetaAtmosphericReconditioner;
+import net.minecraft.entity.player.InventoryPlayer;
public class GUI_PollutionCleaner extends GT_GUIContainerMetaTile_Machine {
public final String mName;
@@ -48,13 +42,7 @@ public class GUI_PollutionCleaner extends GT_GUIContainerMetaTile_Machine {
final int x3 = x2 - xStart;
final int y3 = y2 - yStart + 5;
final List<String> list = new ArrayList<String>();
- if (y3 >= 67 && y3 <= 84) {
- if (x3 >= 7 && x3 <= 24) {
- list.add("Fluid Auto-Output");
- }
- if (x3 >= 25 && x3 <= 42) {
- list.add("Item Auto-Output");
- }
+ if (y3 >= 67 && y3 <= 84) {
if (x3 >= 77 && x3 <= 95) {
//Do Dumb shit
CONTAINER_PollutionCleaner aContainerCast = (CONTAINER_PollutionCleaner) this.mContainer;
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java
index 04d37e8c1e..89997d7be8 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java
@@ -21,6 +21,7 @@ import gregtech.common.items.GT_MetaGenerated_Tool_01;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.core.item.general.ItemAirFilter;
+import gtPlusPlus.core.item.general.ItemBasicScrubberTurbine;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.PlayerUtils;
@@ -90,7 +91,8 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
"Can be configured with a soldering iron to change modes",
"Low Efficiency: Removes half pollution, Turbine takes 50% dmg",
"High Efficiency: Removes full pollution, Turbine takes 100% dmg",
- "Turbine Rotor will not break in LE mode",
+ "Turbine Rotor will not break in LE mode",
+ "Insert an equal tier Conveyor Module to enable automation"
};
if (!mPollutionEnabled) {
String[] B = new String[] {
@@ -367,6 +369,9 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
public boolean hasRotor(ItemStack rotorStack){
if(rotorStack != null){
+ if (rotorStack.getItem() instanceof ItemBasicScrubberTurbine) {
+ return true;
+ }
if (rotorStack.getItem() instanceof GT_MetaGenerated_Tool && rotorStack.getItemDamage() >= 170 && rotorStack.getItemDamage() <= 179){
return true;
}
@@ -392,6 +397,25 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
}
}
+ if (rotorStack.getItem() instanceof ItemBasicScrubberTurbine) {
+ long currentUse = ItemBasicScrubberTurbine.getFilterDamage(rotorStack);
+ //Remove broken Filter
+ if (rotorStack.getItemDamage() == 0 && currentUse >= 2500-10){
+ this.mInventory[this.SLOT_FILTER] = null;
+ return false;
+ }
+ else if (rotorStack.getItemDamage() == 1 && currentUse >= 5000-10){
+ this.mInventory[this.SLOT_FILTER] = null;
+ return false;
+ }
+ else {
+ //Do Damage
+ ItemAirFilter.setFilterDamage(rotorStack, currentUse+10);
+ Logger.WARNING("Rotor Damage: "+currentUse);
+ return true;
+ }
+ }
+
if(mInventory[SLOT_ROTOR].getItem() instanceof GT_MetaGenerated_Tool_01 &&
((GT_MetaGenerated_Tool) mInventory[SLOT_ROTOR].getItem()).getToolStats(mInventory[SLOT_ROTOR]).getSpeedMultiplier()>0 &&
GT_MetaGenerated_Tool.getPrimaryMaterial(mInventory[SLOT_ROTOR]).mToolSpeed>0 ) {
@@ -646,10 +670,27 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
@Override
public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) {
- if (aIndex == 4){
- return false;
+ Logger.INFO("Trying to Insert into "+aIndex);
+ if (aIndex == 5) {
+ if (aStack.getItem() instanceof ItemAirFilter) {
+ return true;
+ }
}
- return super.canInsertItem(aIndex, aStack, aSide);
+ if (aIndex == 4 || aIndex == 6){
+ if (aIndex == 4) {
+ if (this.mInventory[5] != null) {
+ Logger.INFO("Found conveyor, can automate turbines.");
+ if (aStack.getItem() instanceof ItemBasicScrubberTurbine) {
+ return true;
+ }
+ if (aStack.getItem() instanceof GT_MetaGenerated_Tool && aStack.getItemDamage() >= 170 && aStack.getItemDamage() <= 179){
+ return true;
+ }
+ }
+ }
+ }
+ //return super.canInsertItem(aIndex, aStack, aSide);
+ return false;
}
@Override