aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/api/objects/data/AutoMap.java7
-rw-r--r--src/Java/gtPlusPlus/api/objects/minecraft/BlockPos.java2
-rw-r--r--src/Java/gtPlusPlus/api/objects/minecraft/FakeBlockPos.java2
-rw-r--r--src/Java/gtPlusPlus/api/objects/random/XSTR.java7
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/Machine_RoundRobinator.java78
-rw-r--r--src/Java/gtPlusPlus/core/container/Container_RoundRobinator.java247
-rw-r--r--src/Java/gtPlusPlus/core/gui/machine/GUI_RoundRobinator.java86
-rw-r--r--src/Java/gtPlusPlus/core/handler/GuiHandler.java46
-rw-r--r--src/Java/gtPlusPlus/core/inventories/Inventory_RoundRobinator.java7
-rw-r--r--src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDust.java3
-rw-r--r--src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDustUnique.java2
-rw-r--r--src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockBasicTile.java6
-rw-r--r--src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockRoundRobinator.java111
-rw-r--r--src/Java/gtPlusPlus/core/item/bauble/FireProtectionBauble.java2
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java43
-rw-r--r--src/Java/gtPlusPlus/core/recipe/common/CI.java6
-rw-r--r--src/Java/gtPlusPlus/core/tileentities/machines/TileEntityRoundRobinator.java695
-rw-r--r--src/Java/gtPlusPlus/nei/DecayableRecipeHandler.java28
-rw-r--r--src/Java/gtPlusPlus/nei/GT_NEI_MultiBlockHandler.java2
-rw-r--r--src/Java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java2
-rw-r--r--src/Java/gtPlusPlus/preloader/DevHelper.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_PowerSubStationController.java5
22 files changed, 1103 insertions, 286 deletions
diff --git a/src/Java/gtPlusPlus/api/objects/data/AutoMap.java b/src/Java/gtPlusPlus/api/objects/data/AutoMap.java
index 3583a04a74..9e7f702200 100644
--- a/src/Java/gtPlusPlus/api/objects/data/AutoMap.java
+++ b/src/Java/gtPlusPlus/api/objects/data/AutoMap.java
@@ -212,11 +212,12 @@ public class AutoMap<V> implements Iterable<V>, Cloneable, Serializable, Collect
@Override
public boolean retainAll(Collection<?> c) {
- AutoMap<?> aTempAllocation = new AutoMap();
+ AutoMap<?> aTempAllocation = new AutoMap<Object>();
boolean aTrue = false;
aTempAllocation = this;
- aTempAllocation.removeAll(c);
- aTrue = this.removeAll(aTempAllocation);
+ aTempAllocation.removeAll(c);
+ aTempAllocation.clear();
+ aTrue = aTempAllocation.isEmpty();
aTempAllocation.clear();
return aTrue;
}
diff --git a/src/Java/gtPlusPlus/api/objects/minecraft/BlockPos.java b/src/Java/gtPlusPlus/api/objects/minecraft/BlockPos.java
index 7c11e7232b..ab359c3853 100644
--- a/src/Java/gtPlusPlus/api/objects/minecraft/BlockPos.java
+++ b/src/Java/gtPlusPlus/api/objects/minecraft/BlockPos.java
@@ -19,7 +19,7 @@ public class BlockPos implements Serializable{
public final int yPos;
public final int zPos;
public final int dim;
- public final World world;
+ public final transient World world;
public static BlockPos generateBlockPos(String sUUID) {
String[] s2 = sUUID.split("@");
diff --git a/src/Java/gtPlusPlus/api/objects/minecraft/FakeBlockPos.java b/src/Java/gtPlusPlus/api/objects/minecraft/FakeBlockPos.java
index d0c1f3f040..d5db8081dc 100644
--- a/src/Java/gtPlusPlus/api/objects/minecraft/FakeBlockPos.java
+++ b/src/Java/gtPlusPlus/api/objects/minecraft/FakeBlockPos.java
@@ -12,7 +12,7 @@ import net.minecraftforge.common.DimensionManager;
public class FakeBlockPos extends BlockPos {
private static final long serialVersionUID = -6442245826092414593L;
- private Block aBlockAtPos;
+ private transient Block aBlockAtPos;
private int aBlockMetaAtPos = 0;
public static FakeBlockPos generateBlockPos(String sUUID) {
diff --git a/src/Java/gtPlusPlus/api/objects/random/XSTR.java b/src/Java/gtPlusPlus/api/objects/random/XSTR.java
index 6357e9895c..6ce1cbeb6c 100644
--- a/src/Java/gtPlusPlus/api/objects/random/XSTR.java
+++ b/src/Java/gtPlusPlus/api/objects/random/XSTR.java
@@ -115,6 +115,13 @@ public class XSTR extends Random implements Cloneable {
*/
@Override
public XSTR clone() {
+ try {
+ super.clone();
+ }
+ catch (CloneNotSupportedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
return new XSTR(this.getSeed());
}
diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_RoundRobinator.java b/src/Java/gtPlusPlus/core/block/machine/Machine_RoundRobinator.java
index 71814cb868..8ba7c2533b 100644
--- a/src/Java/gtPlusPlus/core/block/machine/Machine_RoundRobinator.java
+++ b/src/Java/gtPlusPlus/core/block/machine/Machine_RoundRobinator.java
@@ -1,14 +1,25 @@
package gtPlusPlus.core.block.machine;
+import java.util.List;
+
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.common.items.GT_MetaGenerated_Tool_01;
+import gtPlusPlus.api.interfaces.ITileTooltip;
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.item.base.itemblock.ItemBlockRoundRobinator;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.tileentities.machines.TileEntityRoundRobinator;
+import gtPlusPlus.core.util.minecraft.InventoryUtils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.PlayerUtils;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.entity.player.EntityPlayer;
@@ -19,24 +30,12 @@ import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
-import gtPlusPlus.GTplusplus;
-import gtPlusPlus.api.interfaces.ITileTooltip;
-import gtPlusPlus.core.creative.AddToCreativeTab;
-import gtPlusPlus.core.handler.GuiHandler;
-import gtPlusPlus.core.item.base.itemblock.ItemBlockBasicTile;
-import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.tileentities.machines.TileEntityRoundRobinator;
-import gtPlusPlus.core.util.minecraft.InventoryUtils;
-import gtPlusPlus.core.util.minecraft.PlayerUtils;
-
public class Machine_RoundRobinator extends BlockContainer implements ITileTooltip
{
@SideOnly(Side.CLIENT)
- private IIcon textureTop;
- @SideOnly(Side.CLIENT)
- private IIcon textureBottom;
+ private IIcon[] textureTop = new IIcon[5];
@SideOnly(Side.CLIENT)
- private IIcon textureFront;
+ private IIcon[] textureFront = new IIcon[5];
/**
* Determines which tooltip is displayed within the itemblock.
@@ -55,8 +54,8 @@ public class Machine_RoundRobinator extends BlockContainer implements ITileToolt
this.setResistance(1f);
this.setBlockName("blockRoundRobinator");
this.setCreativeTab(AddToCreativeTab.tabMachines);
- GameRegistry.registerBlock(this, ItemBlockBasicTile.class, "blockRoundRobinator");
- LanguageRegistry.addName(this, "Round-Robinator");
+ GameRegistry.registerBlock(this, ItemBlockRoundRobinator.class, "blockRoundRobinator");
+ //LanguageRegistry.addName(this, "Round-Robinator");
}
@@ -65,19 +64,23 @@ public class Machine_RoundRobinator extends BlockContainer implements ITileToolt
*/
@Override
@SideOnly(Side.CLIENT)
- public IIcon getIcon(final int p_149691_1_, final int p_149691_2_)
- {
- return p_149691_1_ == 1 ? this.textureTop : (p_149691_1_ == 0 ? this.textureBottom : (this.textureFront));
+ public IIcon getIcon(final int aSide, final int aMeta) {
+ if (aSide < 2) {
+ return this.textureTop[aMeta];
+ }
+ else {
+ return this.textureFront[aMeta];
+ }
}
@Override
@SideOnly(Side.CLIENT)
- public void registerBlockIcons(final IIconRegister p_149651_1_)
- {
- this.blockIcon = p_149651_1_.registerIcon(CORE.MODID + ":" + "metro/" + "TEXTURE_TECH_PANEL_B");
- this.textureTop = p_149651_1_.registerIcon(CORE.MODID + ":" + "metro/" + "TEXTURE_TECH_PANEL_B");
- this.textureBottom = p_149651_1_.registerIcon(CORE.MODID + ":" + "metro/" + "TEXTURE_METAL_PANEL_G");
- this.textureFront = p_149651_1_.registerIcon(CORE.MODID + ":" + "metro/" + "TEXTURE_METAL_PANEL_I");
+ public void registerBlockIcons(final IIconRegister p_149651_1_){
+ this.blockIcon = p_149651_1_.registerIcon(CORE.MODID + ":" + "TileEntities/" + "RoundRobinator_Side");
+ for (int i=0;i<5;i++) {
+ this.textureTop[i] = p_149651_1_.registerIcon(CORE.MODID + ":" + "TileEntities/RoundRobinator/" + "RoundRobinator_Top_"+i);
+ this.textureFront[i] = p_149651_1_.registerIcon(CORE.MODID + ":" + "TileEntities/RoundRobinator/" + "RoundRobinator_Side_"+i);
+ }
}
/**
@@ -109,16 +112,14 @@ public class Machine_RoundRobinator extends BlockContainer implements ITileToolt
if (!mDidScrewDriver) {
final TileEntity te = world.getTileEntity(x, y, z);
if ((te != null) && (te instanceof TileEntityRoundRobinator)){
- player.openGui(GTplusplus.instance, GuiHandler.GUI16, world, x, y, z);
- return true;
+ return ((TileEntityRoundRobinator) te).onRightClick((byte) side, player, x, y, z);
}
+ return false;
}
else {
return true;
- }
-
+ }
}
- return false;
}
@Override
@@ -149,9 +150,7 @@ public class Machine_RoundRobinator extends BlockContainer implements ITileToolt
@Override
public void onBlockPlacedBy(final World world, final int x, final int y, final int z, final EntityLivingBase entity, final ItemStack stack) {
- if (stack.hasDisplayName()) {
- ((TileEntityRoundRobinator) world.getTileEntity(x,y,z)).setCustomName(stack.getDisplayName());
- }
+ super.onBlockPlacedBy(world, x, y, z, entity, stack);
}
@Override
@@ -159,4 +158,17 @@ public class Machine_RoundRobinator extends BlockContainer implements ITileToolt
return false;
}
+ @Override
+ public void getSubBlocks(Item aItem, CreativeTabs p_149666_2_, List aList) {
+ //super.getSubBlocks(aItem, p_149666_2_, aList);
+ for (int i=0;i<5;i++) {
+ aList.add(ItemUtils.simpleMetaStack(aItem, i, 1));
+ }
+ }
+
+ @Override
+ public IIcon getIcon(IBlockAccess aBlockAccess, int x, int y, int z, int aSide) {
+ return super.getIcon(aBlockAccess, x, y, z, aSide);
+ }
+
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/container/Container_RoundRobinator.java b/src/Java/gtPlusPlus/core/container/Container_RoundRobinator.java
index ad2aef02f8..0da2933dfa 100644
--- a/src/Java/gtPlusPlus/core/container/Container_RoundRobinator.java
+++ b/src/Java/gtPlusPlus/core/container/Container_RoundRobinator.java
@@ -1,39 +1,52 @@
package gtPlusPlus.core.container;
+import java.util.Iterator;
+
+import org.apache.commons.lang3.ArrayUtils;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.enums.GT_Values;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.block.ModBlocks;
+import gtPlusPlus.core.inventories.Inventory_RoundRobinator;
+import gtPlusPlus.core.slots.SlotNoInput;
+import gtPlusPlus.core.tileentities.machines.TileEntityRoundRobinator;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
+import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
-import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.core.block.ModBlocks;
-import gtPlusPlus.core.inventories.Inventory_RoundRobinator;
-import gtPlusPlus.core.slots.SlotIntegratedCircuit;
-import gtPlusPlus.core.slots.SlotNoInput;
-import gtPlusPlus.core.tileentities.machines.TileEntityRoundRobinator;
public class Container_RoundRobinator extends Container {
- protected TileEntityRoundRobinator tile_entity;
+ public TileEntityRoundRobinator tile_entity;
public final Inventory_RoundRobinator inventoryChest;
private final World worldObj;
private final int posX;
private final int posY;
private final int posZ;
+
+ private final boolean[] mActiveData = new boolean[] {false, false, false, false};
- public static final int SLOT_OUTPUT = 25;
-
- public static int StorageSlotNumber = 26; // Number of slots in storage area
- public static int InventorySlotNumber = 36; // Inventory Slots (Inventory
+ public static int mStorageSlotNumber = 4; // Number of slots in storage area
+ public static int mInventorySlotNumber = 36; // Inventory Slots (Inventory
// and Hotbar)
- public static int FullSlotNumber = InventorySlotNumber + StorageSlotNumber; // All
+ public static int mFullSlotNumber = mInventorySlotNumber + mStorageSlotNumber; // All
// slots
public Container_RoundRobinator(final InventoryPlayer inventory, final TileEntityRoundRobinator te) {
this.tile_entity = te;
this.inventoryChest = te.getInventory();
+ boolean [] aTemp = te.getActiveSides();
+ if (aTemp != null && aTemp.length == 4) {
+ for (int i=0;i<4;i++) {
+ mActiveData[i] = aTemp[i];
+ }
+ }
int var6;
int var7;
@@ -54,44 +67,20 @@ public class Container_RoundRobinator extends Container {
}*/
- int xStart = 8;
- int yStart = 5;
+ int xStart = 134;
+ int yStart = 32;
try {
//0
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart, yStart));
- //1-10
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+18, yStart));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+36, yStart));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+54, yStart));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+72, yStart));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+90, yStart));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+108, yStart));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+18, yStart+18));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+36, yStart+18));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+54, yStart+18));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+72, yStart+18));
- //11-20
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+90, yStart+18));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+108, yStart+18));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+18, yStart+36));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+36, yStart+36));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+54, yStart+36));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+72, yStart+36));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+90, yStart+36));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+108, yStart+36));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+18, yStart+54));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+36, yStart+54));
- //21-24
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+54, yStart+54));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+72, yStart+54));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+90, yStart+54));
- this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+108, yStart+54));
+ this.addSlotToContainer(new SlotNoInput(this.inventoryChest, o++, xStart, yStart));
+ this.addSlotToContainer(new SlotNoInput(this.inventoryChest, o++, xStart+18, yStart));
+ this.addSlotToContainer(new SlotNoInput(this.inventoryChest, o++, xStart, yStart+17));
+ this.addSlotToContainer(new SlotNoInput(this.inventoryChest, o++, xStart+18, yStart+17));
Logger.INFO("2");
//Add Output
- this.addSlotToContainer(new SlotNoInput(this.inventoryChest, SLOT_OUTPUT, xStart+(8*18), yStart+54));
- o++;
+ //this.addSlotToContainer(new SlotNoInput(this.inventoryChest, SLOT_OUTPUT, xStart+(8*18), yStart+54));
+ //o++;
Logger.INFO("3");
@@ -112,6 +101,7 @@ public class Container_RoundRobinator extends Container {
Logger.INFO("4");
}
catch (Throwable t) {}
+ this.detectAndSendChanges();
}
@@ -121,10 +111,14 @@ public class Container_RoundRobinator extends Container {
if (!aPlayer.worldObj.isRemote) {
if ((aSlotIndex == 999) || (aSlotIndex == -999)) {
- // Utils.LOG_WARNING("??? - "+aSlotIndex);
+ }
+ else if (aSlotIndex < 4) {
+ this.tile_entity.toggleSide(aSlotIndex+2);
+ Logger.INFO("Toggling side: "+(aSlotIndex+2)+" | Active: "+this.tile_entity.getSideActive(aSlotIndex+2)+" | Data:"+this.tile_entity.getDataString());
}
}
- return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer);
+ return GT_Values.NI;
+ //return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer);
}
@Override
@@ -140,51 +134,136 @@ public class Container_RoundRobinator extends Container {
return par1EntityPlayer.getDistanceSq(this.posX + 0.5D, this.posY + 0.5D, this.posZ + 0.5D) <= 64D;
}
+
- @Override
- public ItemStack transferStackInSlot(final EntityPlayer par1EntityPlayer, final int par2) {
- ItemStack var3 = null;
- final Slot var4 = (Slot) this.inventorySlots.get(par2);
-
- if ((var4 != null) && var4.getHasStack()) {
- final ItemStack var5 = var4.getStack();
- var3 = var5.copy();
-
- /*
- * if (par2 == 0) { if (!this.mergeItemStack(var5,
- * InOutputSlotNumber, FullSlotNumber, true)) { return null; }
- *
- * var4.onSlotChange(var5, var3); } else if (par2 >=
- * InOutputSlotNumber && par2 < InventoryOutSlotNumber) { if
- * (!this.mergeItemStack(var5, InventoryOutSlotNumber,
- * FullSlotNumber, false)) { return null; } } else if (par2 >=
- * InventoryOutSlotNumber && par2 < FullSlotNumber) { if
- * (!this.mergeItemStack(var5, InOutputSlotNumber,
- * InventoryOutSlotNumber, false)) { return null; } } else if
- * (!this.mergeItemStack(var5, InOutputSlotNumber, FullSlotNumber,
- * false)) { return null; }
- */
-
- if (var5.stackSize == 0) {
- var4.putStack((ItemStack) null);
- } else {
- var4.onSlotChanged();
- }
- if (var5.stackSize == var3.stackSize) {
- return null;
- }
+ public final void addCraftingToCrafters(ICrafting par1ICrafting) {
+ try {
+ super.addCraftingToCrafters(par1ICrafting);
+ } catch (Throwable var3) {
+
+ }
+ }
+
+ public final void removeCraftingFromCrafters(ICrafting par1ICrafting) {
+ try {
+ super.removeCraftingFromCrafters(par1ICrafting);
+ } catch (Throwable var3) {
+ }
+ }
- var4.onPickupFromSlot(par1EntityPlayer, var5);
+ public final void detectAndSendChanges() {
+ try {
+ super.detectAndSendChanges();
+ detectAndSendChangesEx();
+ } catch (Throwable var2) {
}
+ }
- return var3;
+ public final void updateProgressBar(int par1, int par2) {
+ try {
+ super.updateProgressBar(par1, par2);
+ updateProgressBarEx(par1, par2);
+ } catch (Throwable var4) {
+ }
}
+
+
+ public int mSide_1 = 0;
+ public int mSide_2 = 0;
+ public int mSide_3 = 0;
+ public int mSide_4 = 0;
+ public int mTier = 1;
+ public int mTickRate = 50;
+
+ private int oSide_1 = 0;
+ private int oSide_2 = 0;
+ private int oSide_3 = 0;
+ private int oSide_4 = 0;
+ private int oTier = 1;
+ private int oTickRate = 50;
+
+ private int mTimer = 0;
+
+
+
+ public void detectAndSendChangesEx() {
+ super.detectAndSendChanges();
+ if (!this.tile_entity.getWorldObj().isRemote) {
+ boolean [] aTemp = tile_entity.getActiveSides();
+ for (int i=0;i<4;i++) {
+ mActiveData[i] = aTemp[i];
+ }
+ this.mSide_1 = aTemp[0] ? 1 : 0;
+ this.mSide_2 = aTemp[1] ? 1 : 0;
+ this.mSide_3 = aTemp[2] ? 1 : 0;
+ this.mSide_4 = aTemp[3] ? 1 : 0;
+ this.mTier = this.tile_entity.getTier();
+ this.mTickRate = this.tile_entity.getTickRate();
+
+ String InventoryContents = ArrayUtils.toString(aTemp, "null");
+ //Logger.INFO("Test: "+InventoryContents);
+ ++this.mTimer;
+ Iterator var2 = this.crafters.iterator();
+
+ while (true) {
+ ICrafting var1;
+ do {
+ if (!var2.hasNext()) {
+ this.oSide_1 = this.mSide_1;
+ this.oSide_2 = this.mSide_2;
+ this.oSide_3 = this.mSide_3;
+ this.oSide_4 = this.mSide_4;
+ this.oTier = this.mTier;
+ this.oTickRate = this.mTickRate;
+ return;
+ }
+ var1 = (ICrafting) var2.next();
+ if (this.mTimer % 500 == 10 || this.oSide_1 != this.mSide_1) {
+ var1.sendProgressBarUpdate(this, 2, this.mSide_1);
+ }
+ if (this.mTimer % 500 == 10 || this.oSide_2 != this.mSide_2) {
+ var1.sendProgressBarUpdate(this, 4, this.mSide_2);
+ }
+ if (this.mTimer % 500 == 10 || this.oSide_3 != this.mSide_3) {
+ var1.sendProgressBarUpdate(this, 6, this.mSide_3);
+ }
+ if (this.mTimer % 500 == 10 || this.oSide_4 != this.mSide_4) {
+ var1.sendProgressBarUpdate(this, 8, this.mSide_4);
+ }
+ if (this.mTimer % 500 == 10 || this.oTier != this.mTier) {
+ var1.sendProgressBarUpdate(this, 10, this.mTier);
+ }
+ if (this.mTimer % 500 == 10 || this.oTickRate != this.mTickRate) {
+ var1.sendProgressBarUpdate(this, 12, this.mTickRate);
+ }
+ } while (this.mTimer % 500 != 10);
+
+ }
+ }
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void updateProgressBarEx(int par1, int par2) {
+ super.updateProgressBar(par1, par2);
+ switch (par1) {
+ case 2 :
+ this.mSide_1 = par2;
+ break;
+ case 4 :
+ this.mSide_2 = par2;
+ break;
+ case 6 :
+ this.mSide_3 = par2;
+ case 8 :
+ this.mSide_4 = par2;
+ case 10 :
+ this.mTier = par2;
+ case 12 :
+ this.mTickRate = par2;
+ break;
+ }
- // Can merge Slot
- @Override
- public boolean func_94530_a(final ItemStack p_94530_1_, final Slot p_94530_2_) {
- return super.func_94530_a(p_94530_1_, p_94530_2_);
}
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/gui/machine/GUI_RoundRobinator.java b/src/Java/gtPlusPlus/core/gui/machine/GUI_RoundRobinator.java
index 7a9417c806..c5a8341d8a 100644
--- a/src/Java/gtPlusPlus/core/gui/machine/GUI_RoundRobinator.java
+++ b/src/Java/gtPlusPlus/core/gui/machine/GUI_RoundRobinator.java
@@ -1,29 +1,75 @@
package gtPlusPlus.core.gui.machine;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-
-import net.minecraft.client.gui.inventory.GuiContainer;
-import net.minecraft.entity.player.InventoryPlayer;
-import net.minecraft.util.ResourceLocation;
import gtPlusPlus.core.container.Container_RoundRobinator;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.tileentities.machines.TileEntityRoundRobinator;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import net.minecraft.client.gui.inventory.GuiContainer;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ResourceLocation;
@SideOnly(Side.CLIENT)
public class GUI_RoundRobinator extends GuiContainer {
private static final ResourceLocation craftingTableGuiTextures = new ResourceLocation(CORE.MODID, "textures/gui/RoundRobinator.png");
+ private TileEntityRoundRobinator mTile;
+ private Container_RoundRobinator mContainer;
+ private static final Method mDrawItemStack;
+
+ static {
+ mDrawItemStack = ReflectionUtils.getMethod(GuiContainer.class, "drawItemStack", new Class[] {ItemStack.class, int.class, int.class, String.class});
+ }
public GUI_RoundRobinator(final InventoryPlayer player_inventory, final TileEntityRoundRobinator te){
- super(new Container_RoundRobinator(player_inventory, te));
+ this(new Container_RoundRobinator(player_inventory, te));
+ mTile = te;
+ }
+
+ private GUI_RoundRobinator(final Container_RoundRobinator aContainer){
+ super(aContainer);
+ mContainer = aContainer;
}
@Override
protected void drawGuiContainerForegroundLayer(final int i, final int j){
- super.drawGuiContainerForegroundLayer(i, j);
+ super.drawGuiContainerForegroundLayer(i, j);
+
+ int xStart = 134;
+ int yStart = 31;
+ mTile = this.mContainer.tile_entity;
+
+ int tier = mContainer.mTier;
+ int aTickRate = mContainer.mTickRate;
+
+ fontRendererObj.drawString("Round Robinator", 85, 4, Utils.rgbtoHexValue(50, 150, 50));
+ fontRendererObj.drawString("Tier: "+tier, 85, 12, Utils.rgbtoHexValue(50, 150, 50));
+ fontRendererObj.drawString("Rate: 1 Item/"+aTickRate+"t", 85, 20, Utils.rgbtoHexValue(50, 150, 50));
+
+ boolean[] aStates = new boolean[] {mContainer.mSide_1 == 0 ? false : true, mContainer.mSide_2 == 0 ? false : true, mContainer.mSide_3 == 0 ? false : true,mContainer.mSide_4 == 0 ? false : true};
+
+ fontRendererObj.drawString("West: "+(aStates[0] ? "Active" : "Disabled"), 5, 5, Utils.rgbtoHexValue(50, 50, 50));
+ fontRendererObj.drawString("North: "+(aStates[1] ? "Active" : "Disabled"), 5, 15, Utils.rgbtoHexValue(50, 50, 50));
+ fontRendererObj.drawString("South: "+(aStates[2] ? "Active" : "Disabled"), 5, 25, Utils.rgbtoHexValue(50, 50, 50));
+ fontRendererObj.drawString("East: "+(aStates[3] ? "Active" : "Disabled"), 5, 35, Utils.rgbtoHexValue(50, 50, 50));
+ fontRendererObj.drawString("Toggling South will visually", 5, 65, Utils.rgbtoHexValue(150, 50, 50));
+ fontRendererObj.drawString("toggle East, This is a visual bug.", 5, 74, Utils.rgbtoHexValue(150, 50, 50));
+ drawStatus(aStates[0], xStart, yStart);
+ drawStatus(aStates[1], xStart+18, yStart);
+ drawStatus(aStates[2], xStart, yStart+18);
+ drawStatus(aStates[3], xStart+18, yStart+18);
+
}
@Override
@@ -33,6 +79,34 @@ public class GUI_RoundRobinator extends GuiContainer {
final int x = (this.width - this.xSize) / 2;
final int y = (this.height - this.ySize) / 2;
this.drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize);
+
+
+
+ }
+
+ private static ItemStack aGreenGlass;
+ private static ItemStack aRedGlass;
+
+ private void drawStatus(boolean aStateActive, int x, int y) {
+ if (aGreenGlass == null) {
+ Item pane = ItemUtils.getSimpleStack(Blocks.stained_glass_pane).getItem();
+ aGreenGlass = ItemUtils.simpleMetaStack(pane, 5, 1);
+ }
+ if (aRedGlass == null) {
+ Item pane = ItemUtils.getSimpleStack(Blocks.stained_glass_pane).getItem();
+ aRedGlass = ItemUtils.simpleMetaStack(pane, 14, 1);
+ }
+ if (mDrawItemStack != null) {
+ try {
+ if (aStateActive) {
+ mDrawItemStack.invoke(this, new Object[]{aGreenGlass, x, y, ""});
+ }
+ else {
+ mDrawItemStack.invoke(this, new Object[]{aRedGlass, x, y, ""});
+ }
+ }
+ catch (Throwable t) {}
+ }
}
//This method is called when the Gui is first called!
diff --git a/src/Java/gtPlusPlus/core/handler/GuiHandler.java b/src/Java/gtPlusPlus/core/handler/GuiHandler.java
index 2141210650..e44c9a8f20 100644
--- a/src/Java/gtPlusPlus/core/handler/GuiHandler.java
+++ b/src/Java/gtPlusPlus/core/handler/GuiHandler.java
@@ -2,16 +2,22 @@ package gtPlusPlus.core.handler;
import cpw.mods.fml.common.network.IGuiHandler;
import cpw.mods.fml.common.network.NetworkRegistry;
-
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.util.ChunkCoordinates;
-import net.minecraft.world.World;
-
import gtPlusPlus.GTplusplus;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.block.machine.Machine_SuperJukebox.TileEntitySuperJukebox;
-import gtPlusPlus.core.container.*;
+import gtPlusPlus.core.container.Container_BackpackBase;
+import gtPlusPlus.core.container.Container_CircuitProgrammer;
+import gtPlusPlus.core.container.Container_DecayablesChest;
+import gtPlusPlus.core.container.Container_FishTrap;
+import gtPlusPlus.core.container.Container_Grindle;
+import gtPlusPlus.core.container.Container_ModularityTable;
+import gtPlusPlus.core.container.Container_PestKiller;
+import gtPlusPlus.core.container.Container_ProjectTable;
+import gtPlusPlus.core.container.Container_RoundRobinator;
+import gtPlusPlus.core.container.Container_SuperJukebox;
+import gtPlusPlus.core.container.Container_TradeTable;
+import gtPlusPlus.core.container.Container_Workbench;
+import gtPlusPlus.core.container.Container_WorkbenchAdvanced;
import gtPlusPlus.core.container.box.LunchBoxContainer;
import gtPlusPlus.core.container.box.MagicBagContainer;
import gtPlusPlus.core.container.box.ToolBoxContainer;
@@ -22,20 +28,38 @@ import gtPlusPlus.core.gui.item.GuiBaseGrindle;
import gtPlusPlus.core.gui.item.box.LunchBoxGui;
import gtPlusPlus.core.gui.item.box.MagicBagGui;
import gtPlusPlus.core.gui.item.box.ToolBoxGui;
-import gtPlusPlus.core.gui.machine.*;
+import gtPlusPlus.core.gui.machine.GUI_CircuitProgrammer;
+import gtPlusPlus.core.gui.machine.GUI_DecayablesChest;
+import gtPlusPlus.core.gui.machine.GUI_FishTrap;
+import gtPlusPlus.core.gui.machine.GUI_ModularityTable;
+import gtPlusPlus.core.gui.machine.GUI_PestKiller;
+import gtPlusPlus.core.gui.machine.GUI_ProjectTable;
+import gtPlusPlus.core.gui.machine.GUI_RoundRobinator;
+import gtPlusPlus.core.gui.machine.GUI_SuperJukebox;
+import gtPlusPlus.core.gui.machine.GUI_TradeTable;
+import gtPlusPlus.core.gui.machine.GUI_Workbench;
+import gtPlusPlus.core.gui.machine.GUI_WorkbenchAdvanced;
import gtPlusPlus.core.interfaces.IGuiManager;
import gtPlusPlus.core.inventories.BaseInventoryBackpack;
import gtPlusPlus.core.inventories.BaseInventoryGrindle;
import gtPlusPlus.core.inventories.box.LunchBoxInventory;
import gtPlusPlus.core.inventories.box.MagicBagInventory;
import gtPlusPlus.core.inventories.box.ToolBoxInventory;
-import gtPlusPlus.core.item.tool.misc.box.ContainerBoxBase;
-import gtPlusPlus.core.item.tool.misc.box.CustomBoxInventory;
import gtPlusPlus.core.tileentities.base.TileEntityBase;
import gtPlusPlus.core.tileentities.general.TileEntityCircuitProgrammer;
import gtPlusPlus.core.tileentities.general.TileEntityDecayablesChest;
import gtPlusPlus.core.tileentities.general.TileEntityFishTrap;
-import gtPlusPlus.core.tileentities.machines.*;
+import gtPlusPlus.core.tileentities.machines.TileEntityModularityTable;
+import gtPlusPlus.core.tileentities.machines.TileEntityPestKiller;
+import gtPlusPlus.core.tileentities.machines.TileEntityProjectTable;
+import gtPlusPlus.core.tileentities.machines.TileEntityRoundRobinator;
+import gtPlusPlus.core.tileentities.machines.TileEntityTradeTable;
+import gtPlusPlus.core.tileentities.machines.TileEntityWorkbench;
+import gtPlusPlus.core.tileentities.machines.TileEntityWorkbenchAdvanced;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.ChunkCoordinates;
+import net.minecraft.world.World;
public class GuiHandler implements IGuiHandler {
diff --git a/src/Java/gtPlusPlus/core/inventories/Inventory_RoundRobinator.java b/src/Java/gtPlusPlus/core/inventories/Inventory_RoundRobinator.java
index 58d60b595f..a47f250c39 100644
--- a/src/Java/gtPlusPlus/core/inventories/Inventory_RoundRobinator.java
+++ b/src/Java/gtPlusPlus/core/inventories/Inventory_RoundRobinator.java
@@ -1,6 +1,5 @@
package gtPlusPlus.core.inventories;
-import gtPlusPlus.core.recipe.common.CI;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
@@ -9,10 +8,10 @@ import net.minecraft.nbt.NBTTagList;
public class Inventory_RoundRobinator implements IInventory{
- private final String name = "Circuit Programmer";
+ private final String name = "Round Robinator";
/** Defining your inventory size this way is handy */
- public static final int INV_SIZE = 26;
+ publi