aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorJohannes Gäßler <updrn@student.kit.edu>2017-06-28 00:16:04 +0200
committerJohannes Gäßler <updrn@student.kit.edu>2017-06-28 00:16:04 +0200
commit40d850aeceae5aff89720b09fe61d0d53e1c27a4 (patch)
tree203fa7ebb5d34abe950216bc86556f23a65fa92f /src/main/java
parent95a1d46086bca64e6b409bccace331ac1a7d13a7 (diff)
downloadGT5-Unofficial-40d850aeceae5aff89720b09fe61d0d53e1c27a4.tar.gz
GT5-Unofficial-40d850aeceae5aff89720b09fe61d0d53e1c27a4.tar.bz2
GT5-Unofficial-40d850aeceae5aff89720b09fe61d0d53e1c27a4.zip
Added the state of the ItemDistributor to the NBTTadCompound
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java38
1 files changed, 31 insertions, 7 deletions
diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java
index 0c66c168be..1628a15c80 100644
--- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java
+++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java
@@ -11,10 +11,11 @@ import gregtech.common.gui.GT_Container_ChestBuffer;
import gregtech.common.gui.GT_GUIContainer_ChestBuffer;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
public class GT_MetaTileEntity_ItemDistributor extends GT_MetaTileEntity_Buffer {
- private byte[] sideWeights = new byte[6];
+ private byte[] itemsPerSide = new byte[6];
private byte currentSide = 0, currentSideItemCount = 0;
public GT_MetaTileEntity_ItemDistributor(int aID, String aName, String aNameRegional, int aTier) {
@@ -52,7 +53,7 @@ public class GT_MetaTileEntity_ItemDistributor extends GT_MetaTileEntity_Buffer
int movedItems = 0;
TileEntity adjacentTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(currentSide);
int inspectedSides = 0;
- while (sideWeights[currentSide] == 0) {
+ while (itemsPerSide[currentSide] == 0) {
currentSide = (byte) ((currentSide + 1) % 6);
currentSideItemCount = 0;
adjacentTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(currentSide);
@@ -63,9 +64,9 @@ public class GT_MetaTileEntity_ItemDistributor extends GT_MetaTileEntity_Buffer
}
movedItems = GT_Utility.moveOneItemStack(aBaseMetaTileEntity, adjacentTileEntity, currentSide,
GT_Utility.getOppositeSide(currentSide), null, false, (byte) 64, (byte) 1,
- (byte) (sideWeights[currentSide] - currentSideItemCount), (byte) 1);
+ (byte) (itemsPerSide[currentSide] - currentSideItemCount), (byte) 1);
currentSideItemCount += movedItems;
- if (currentSideItemCount >= sideWeights[currentSide]) {
+ if (currentSideItemCount >= itemsPerSide[currentSide]) {
currentSide = (byte) ((currentSide + 1) % 6);
currentSideItemCount = 0;
}
@@ -90,11 +91,34 @@ public class GT_MetaTileEntity_ItemDistributor extends GT_MetaTileEntity_Buffer
@Override
public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- sideWeights[aSide] += aPlayer.isSneaking() ? -1 : 1;
- sideWeights[aSide] = (byte) ((sideWeights[aSide] + 128) % 128);
- GT_Utility.sendChatToPlayer(aPlayer, trans("110", "Side Weight: " + sideWeights[aSide]));
+ //Adjust items per side by 1 or -1, constrained to the cyclic interval [0, 127]
+ itemsPerSide[aSide] += aPlayer.isSneaking() ? -1 : 1;
+ itemsPerSide[aSide] = (byte) ((itemsPerSide[aSide] + 128) % 128);
+ GT_Utility.sendChatToPlayer(aPlayer, trans("110", "Items per side: " + itemsPerSide[aSide]));
}
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ super.saveNBTData(aNBT);
+ aNBT.setByteArray("mItemsPerSide", itemsPerSide);
+ aNBT.setByte("mCurrentSide", currentSide);
+ aNBT.setByte("mCurrentSideItemCount", currentSideItemCount);
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ super.loadNBTData(aNBT);
+ itemsPerSide = aNBT.getByteArray("mItemsPerSide");
+ currentSide = aNBT.getByte("mCurrentSide");
+ currentSideItemCount = aNBT.getByte("mCurrentSideItemCount");
+ }
+
+ @Override
+ public void setItemNBT(NBTTagCompound aNBT) {
+ super.setItemNBT(aNBT);
+ aNBT.setByteArray("mItemsPerSide", itemsPerSide);
+ }
+
public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
return new GT_Container_ChestBuffer(aPlayerInventory, aBaseMetaTileEntity);
}