Fixed Universal macerator UI

This commit is contained in:
TheDarkDnKTv 2021-03-27 03:21:37 +02:00
parent ba2882b5f8
commit 8f77bf6164
6 changed files with 37 additions and 87 deletions

View file

@ -31,7 +31,6 @@ public class GT_ContainerMetaTile_Machine extends GT_Container {
if (mTileEntity != null && mTileEntity.getMetaTileEntity() != null) { if (mTileEntity != null && mTileEntity.getMetaTileEntity() != null) {
addSlots(aInventoryPlayer); addSlots(aInventoryPlayer);
if (doesBindPlayerInventory()) bindPlayerInventory(aInventoryPlayer); if (doesBindPlayerInventory()) bindPlayerInventory(aInventoryPlayer);
// detectAndSendChanges(); // FIXME check all UIs
} else { } else {
aInventoryPlayer.player.closeScreen(); aInventoryPlayer.player.closeScreen();
} }
@ -75,19 +74,6 @@ public class GT_ContainerMetaTile_Machine extends GT_Container {
} }
} }
// @Override
// public void prepareChanges(JsonObject data, boolean force) {
// super.prepareChanges(data, force);
//
// }
//
// @Override
// @SideOnly(Side.CLIENT)
// public void processChanges(JsonObject data) {
// super.processChanges(data);
//
// }
/** /**
* Server side method to write changes to data object * Server side method to write changes to data object
*/ */

View file

@ -42,26 +42,30 @@ public class GT_Container_BasicMachine extends GT_ContainerMetaTile_Machine {
@Override @Override
public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) {
if (aSlotIndex < 5) return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); if (aSlotIndex < getSlotCount()) return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer);
return this.handleClick(aSlotIndex, aMouseclick, aShifthold, aPlayer) ? null : super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer);
}
/**
* Custom slotClick to handle buttons and etc
* @return true if super call is not needed
*/
public boolean handleClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) {
Slot tSlot = (Slot)inventorySlots.get(aSlotIndex); Slot tSlot = (Slot)inventorySlots.get(aSlotIndex);
if (tSlot != null) { if (mTileEntity.getMetaTileEntity() != null && tSlot != null) {
if (mTileEntity.getMetaTileEntity() == null) return null;
if (aSlotIndex == 5) { if (aSlotIndex == 5) {
((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bOutput = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bOutput; ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bOutput = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bOutput;
return null; return true;
} } else if (aSlotIndex == 6) {
if (aSlotIndex == 6) {
((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bItemTransfer = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bItemTransfer; ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bItemTransfer = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bItemTransfer;
return null; return true;
} } else if (aSlotIndex == 7) {
if (aSlotIndex == 7) {
((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bSeperatedInputs = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bSeperatedInputs; ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bSeperatedInputs = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bSeperatedInputs;
return null; return true;
} }
} }
return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); return false;
} }
@Override @Override

View file

@ -26,7 +26,7 @@ public class GT_Container_ElectricInventoryManager extends GT_ContainerMetaTile_
public final SyncedField<Integer> mTargetEnergy = new SyncedField<>("mTargetEnergy" , new Integer(0)); public final SyncedField<Integer> mTargetEnergy = new SyncedField<>("mTargetEnergy" , new Integer(0));
public GT_Container_ElectricInventoryManager(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { public GT_Container_ElectricInventoryManager(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) {
super(aInventoryPlayer, aTileEntity); // FIXME TEST THIS super(aInventoryPlayer, aTileEntity);
} }
public void addSlots(InventoryPlayer aInventoryPlayer) { public void addSlots(InventoryPlayer aInventoryPlayer) {

View file

@ -16,7 +16,7 @@ import cpw.mods.fml.relauncher.*;
public class GT_Container_ElectricRetrieverAdvanced extends GT_ContainerMetaTile_Machine public class GT_Container_ElectricRetrieverAdvanced extends GT_ContainerMetaTile_Machine
{ {
public final SyncedField<Integer[]> mTargetSlots; // FIXME TEST this public final SyncedField<Integer[]> mTargetSlots;
public GT_Container_ElectricRetrieverAdvanced(final InventoryPlayer aInventoryPlayer, final IGregTechTileEntity aTileEntity) { public GT_Container_ElectricRetrieverAdvanced(final InventoryPlayer aInventoryPlayer, final IGregTechTileEntity aTileEntity) {
super(aInventoryPlayer, aTileEntity); super(aInventoryPlayer, aTileEntity);

View file

@ -1,11 +1,8 @@
package gregtechmod.common.containers; package gregtechmod.common.containers;
import java.util.Iterator;
import java.util.List; import java.util.List;
import cpw.mods.fml.relauncher.Side; import gregtechmod.api.gui.GT_Container_BasicMachine;
import cpw.mods.fml.relauncher.SideOnly;
import gregtechmod.api.gui.GT_ContainerMetaTile_Machine;
import gregtechmod.api.gui.GT_Slot_Holo; import gregtechmod.api.gui.GT_Slot_Holo;
import gregtechmod.api.gui.GT_Slot_Output; import gregtechmod.api.gui.GT_Slot_Output;
import gregtechmod.api.interfaces.IGregTechTileEntity; import gregtechmod.api.interfaces.IGregTechTileEntity;
@ -14,7 +11,6 @@ import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicMac
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -22,9 +18,7 @@ import net.minecraft.item.ItemStack;
* @author TheDarkDnKTv * @author TheDarkDnKTv
* *
*/ */
public class UniversalMacerator extends GT_ContainerMetaTile_Machine { public class UniversalMacerator extends GT_Container_BasicMachine {
public boolean mOutputting = false, mItemTransfer = false, mSeperatedInputs = false;
/** /**
* @param aInventoryPlayer * @param aInventoryPlayer
@ -51,58 +45,24 @@ public class UniversalMacerator extends GT_ContainerMetaTile_Machine {
addSlotToContainer(new GT_Slot_Holo(mTileEntity, 0, 44, 63, false, true, 1)); addSlotToContainer(new GT_Slot_Holo(mTileEntity, 0, 44, 63, false, true, 1));
} }
@Override @Override
public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { public boolean handleClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) {
if (aSlotIndex < 7) return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer);
Slot tSlot = (Slot)inventorySlots.get(aSlotIndex); Slot tSlot = (Slot)inventorySlots.get(aSlotIndex);
if (tSlot != null) { if (mTileEntity.getMetaTileEntity() != null && tSlot != null) {
if (mTileEntity.getMetaTileEntity() == null) return null; GT_MetaTileEntity_BasicMachine mte = (GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity();
if (aSlotIndex == 7) { if (aSlotIndex == 7) {
((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bOutput = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bOutput; mte.bOutput = !mte.bOutput;
return null; return true;
} } else if (aSlotIndex == 8) {
if (aSlotIndex == 8) { mte.bItemTransfer = !mte.bItemTransfer;
((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bItemTransfer = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bItemTransfer; return true;
return null; } else if (aSlotIndex == 9) {
} mte.bSeperatedInputs = !mte.bSeperatedInputs;
if (aSlotIndex == 9) { return true;
((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bSeperatedInputs = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bSeperatedInputs;
return null;
} }
} }
return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); return false;
}
@Override
public void detectAndSendChanges() {
super.detectAndSendChanges();
if (mTileEntity.isClientSide() || mTileEntity.getMetaTileEntity() == null) return;
mOutputting = ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bOutput;
mItemTransfer = ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bItemTransfer;
mSeperatedInputs = ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bSeperatedInputs;
@SuppressWarnings("rawtypes")
Iterator var2 = this.crafters.iterator();
while (var2.hasNext()) {
ICrafting var1 = (ICrafting)var2.next();
var1.sendProgressBarUpdate(this, 101, mOutputting?1:0);
var1.sendProgressBarUpdate(this, 102, mItemTransfer?1:0);
var1.sendProgressBarUpdate(this, 103, mSeperatedInputs?1:0);
}
}
@Override
@SideOnly(Side.CLIENT)
public void updateProgressBar(int par1, int par2) {
super.updateProgressBar(par1, par2);
switch (par1) {
case 101: mOutputting = (par2 != 0); break;
case 102: mItemTransfer = (par2 != 0); break;
case 103: mSeperatedInputs = (par2 != 0); break;
}
} }
@Override @Override

View file

@ -37,9 +37,9 @@ public class GUI_UniversalMacerator extends GT_GUIContainerMetaTile_Machine {
int y = (height - ySize) / 2; int y = (height - ySize) / 2;
drawTexturedModalRect(x, y, 0, 0, xSize, ySize); drawTexturedModalRect(x, y, 0, 0, xSize, ySize);
if (mContainer != null) { if (mContainer != null) {
if (((UniversalMacerator)mContainer).mOutputting) drawTexturedModalRect(x + 7, y + 62, 176, 18, 18, 18); if (((UniversalMacerator)mContainer).mOutputting.get()) drawTexturedModalRect(x + 7, y + 62, 176, 18, 18, 18);
if (((UniversalMacerator)mContainer).mItemTransfer) drawTexturedModalRect(x + 25, y + 62, 176, 36, 18, 18); if (((UniversalMacerator)mContainer).mItemTransfer.get()) drawTexturedModalRect(x + 25, y + 62, 176, 36, 18, 18);
if (((UniversalMacerator)mContainer).mSeperatedInputs) drawTexturedModalRect(x + 43, y + 62, 176, 54, 18, 18); if (((UniversalMacerator)mContainer).mSeperatedInputs.get()) drawTexturedModalRect(x + 43, y + 62, 176, 54, 18, 18);
if (mContainer.mMaxProgressTime.get() > 0) { if (mContainer.mMaxProgressTime.get() > 0) {
int tSize = 20, tProgress = Math.max(1, Math.min(tSize, (mContainer.mProgressTime.get()>0?1:0) + (mContainer.mProgressTime.get() * tSize) / mContainer.mMaxProgressTime.get())) % (tSize+1); int tSize = 20, tProgress = Math.max(1, Math.min(tSize, (mContainer.mProgressTime.get()>0?1:0) + (mContainer.mProgressTime.get() * tSize) / mContainer.mMaxProgressTime.get())) % (tSize+1);