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) {
addSlots(aInventoryPlayer);
if (doesBindPlayerInventory()) bindPlayerInventory(aInventoryPlayer);
// detectAndSendChanges(); // FIXME check all UIs
} else {
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
*/

View file

@ -42,26 +42,30 @@ public class GT_Container_BasicMachine extends GT_ContainerMetaTile_Machine {
@Override
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);
if (tSlot != null) {
if (mTileEntity.getMetaTileEntity() == null) return null;
if (mTileEntity.getMetaTileEntity() != null && tSlot != null) {
if (aSlotIndex == 5) {
((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bOutput = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bOutput;
return null;
}
if (aSlotIndex == 6) {
return true;
} else if (aSlotIndex == 6) {
((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bItemTransfer = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bItemTransfer;
return null;
}
if (aSlotIndex == 7) {
return true;
} else if (aSlotIndex == 7) {
((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

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 GT_Container_ElectricInventoryManager(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) {
super(aInventoryPlayer, aTileEntity); // FIXME TEST THIS
super(aInventoryPlayer, aTileEntity);
}
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 final SyncedField<Integer[]> mTargetSlots; // FIXME TEST this
public final SyncedField<Integer[]> mTargetSlots;
public GT_Container_ElectricRetrieverAdvanced(final InventoryPlayer aInventoryPlayer, final IGregTechTileEntity aTileEntity) {
super(aInventoryPlayer, aTileEntity);

View file

@ -1,11 +1,8 @@
package gregtechmod.common.containers;
import java.util.Iterator;
import java.util.List;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtechmod.api.gui.GT_ContainerMetaTile_Machine;
import gregtechmod.api.gui.GT_Container_BasicMachine;
import gregtechmod.api.gui.GT_Slot_Holo;
import gregtechmod.api.gui.GT_Slot_Output;
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.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
@ -22,10 +18,8 @@ import net.minecraft.item.ItemStack;
* @author TheDarkDnKTv
*
*/
public class UniversalMacerator extends GT_ContainerMetaTile_Machine {
public boolean mOutputting = false, mItemTransfer = false, mSeperatedInputs = false;
public class UniversalMacerator extends GT_Container_BasicMachine {
/**
* @param aInventoryPlayer
* @param aTileEntity
@ -51,60 +45,26 @@ public class UniversalMacerator extends GT_ContainerMetaTile_Machine {
addSlotToContainer(new GT_Slot_Holo(mTileEntity, 0, 44, 63, false, true, 1));
}
@Override
public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) {
if (aSlotIndex < 7) return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer);
@Override
public boolean handleClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) {
Slot tSlot = (Slot)inventorySlots.get(aSlotIndex);
if (tSlot != null) {
if (mTileEntity.getMetaTileEntity() == null) return null;
if (mTileEntity.getMetaTileEntity() != null && tSlot != null) {
GT_MetaTileEntity_BasicMachine mte = (GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity();
if (aSlotIndex == 7) {
((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bOutput = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bOutput;
return null;
}
if (aSlotIndex == 8) {
((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bItemTransfer = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bItemTransfer;
return null;
}
if (aSlotIndex == 9) {
((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bSeperatedInputs = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bSeperatedInputs;
return null;
mte.bOutput = !mte.bOutput;
return true;
} else if (aSlotIndex == 8) {
mte.bItemTransfer = !mte.bItemTransfer;
return true;
} else if (aSlotIndex == 9) {
mte.bSeperatedInputs = !mte.bSeperatedInputs;
return true;
}
}
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
public int getSlotCount() {
return 7;

View file

@ -37,9 +37,9 @@ public class GUI_UniversalMacerator extends GT_GUIContainerMetaTile_Machine {
int y = (height - ySize) / 2;
drawTexturedModalRect(x, y, 0, 0, xSize, ySize);
if (mContainer != null) {
if (((UniversalMacerator)mContainer).mOutputting) 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).mSeperatedInputs) drawTexturedModalRect(x + 43, y + 62, 176, 54, 18, 18);
if (((UniversalMacerator)mContainer).mOutputting.get()) drawTexturedModalRect(x + 7, y + 62, 176, 18, 18, 18);
if (((UniversalMacerator)mContainer).mItemTransfer.get()) drawTexturedModalRect(x + 25, y + 62, 176, 36, 18, 18);
if (((UniversalMacerator)mContainer).mSeperatedInputs.get()) drawTexturedModalRect(x + 43, y + 62, 176, 54, 18, 18);
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);