diff options
Diffstat (limited to 'src/main/java/gregtech/common/covers')
43 files changed, 1871 insertions, 2118 deletions
diff --git a/src/main/java/gregtech/common/covers/CoverInfo.java b/src/main/java/gregtech/common/covers/CoverInfo.java index 58b1afe5ba..206a82ca2e 100644 --- a/src/main/java/gregtech/common/covers/CoverInfo.java +++ b/src/main/java/gregtech/common/covers/CoverInfo.java @@ -2,21 +2,25 @@ package gregtech.common.covers; import static gregtech.api.enums.GT_Values.SIDE_UNKNOWN; +import java.lang.ref.WeakReference; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.fluids.Fluid; + import com.gtnewhorizons.modularui.api.screen.ModularWindow; + import gregtech.api.GregTech_API; import gregtech.api.gui.modularui.GT_CoverUIBuildContext; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.util.GT_CoverBehaviorBase; import gregtech.api.util.ISerializableObject; -import java.lang.ref.WeakReference; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fluids.Fluid; public final class CoverInfo { + private static final String NBT_SIDE = "s", NBT_ID = "id", NBT_DATA = "d"; public static final CoverInfo EMPTY_INFO = new CoverInfo(SIDE_UNKNOWN, null); @@ -44,8 +48,7 @@ public final class CoverInfo { coverSide = aNBT.getByte(NBT_SIDE); coverID = aNBT.getInteger(NBT_ID); coverBehavior = GregTech_API.getCoverBehaviorNew(coverID); - coverData = aNBT.hasKey(NBT_DATA) - ? coverBehavior.createDataObject(aNBT.getTag(NBT_DATA)) + coverData = aNBT.hasKey(NBT_DATA) ? coverBehavior.createDataObject(aNBT.getTag(NBT_DATA)) : coverBehavior.createDataObject(); coveredTile = new WeakReference<>(aTile); } @@ -158,8 +161,12 @@ public final class CoverInfo { } public ModularWindow createWindow(EntityPlayer player) { - final GT_CoverUIBuildContext buildContext = - new GT_CoverUIBuildContext(player, coverID, coverSide, coveredTile.get(), true); + final GT_CoverUIBuildContext buildContext = new GT_CoverUIBuildContext( + player, + coverID, + coverSide, + coveredTile.get(), + true); return getCoverBehavior().createWindow(buildContext); } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Arm.java b/src/main/java/gregtech/common/covers/GT_Cover_Arm.java index 6a7711a242..845e74d1ab 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Arm.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Arm.java @@ -1,10 +1,17 @@ package gregtech.common.covers; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.fluids.Fluid; + import com.gtnewhorizons.modularui.api.math.MathExpression; import com.gtnewhorizons.modularui.api.screen.ModularWindow; import com.gtnewhorizons.modularui.common.widget.TextWidget; import com.gtnewhorizons.modularui.common.widget.textfield.BaseTextFieldWidget; import com.gtnewhorizons.modularui.common.widget.textfield.TextFieldWidget; + import gregtech.api.gui.modularui.GT_CoverUIBuildContext; import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; @@ -16,13 +23,9 @@ import gregtech.api.util.ISerializableObject; import gregtech.common.gui.modularui.widget.CoverDataControllerWidget; import gregtech.common.gui.modularui.widget.CoverDataFollower_TextFieldWidget; import gregtech.common.gui.modularui.widget.CoverDataFollower_ToggleButtonWidget; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.fluids.Fluid; public class GT_Cover_Arm extends GT_CoverBehavior { + public final int mTickRate; // msb converted, 2nd : direction (1=export) // right 14 bits: internalSlot, next 14 bits adjSlot, 0 = all, slot = -1 @@ -49,14 +52,14 @@ public class GT_Cover_Arm extends GT_CoverBehavior { } @Override - public boolean isRedstoneSensitive( - byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + public boolean isRedstoneSensitive(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, + long aTimer) { return false; } @Override - public int doCoverThings( - byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, + long aTimer) { if ((((aTileEntity instanceof IMachineProgress)) && (!((IMachineProgress) aTileEntity).isAllowedToWork()))) { return aCoverVariable; } @@ -102,23 +105,31 @@ public class GT_Cover_Arm extends GT_CoverBehavior { if ((aCoverVariable & EXPORT_MASK) > 0) side = aSide; else side = GT_Utility.getOppositeSide(aSide); movedItems = GT_Utility.moveOneItemStackIntoSlot( - fromTile, toTile, side, toSlot - 1, null, false, (byte) 64, (byte) 1, (byte) 64, (byte) 1); + fromTile, + toTile, + side, + toSlot - 1, + null, + false, + (byte) 64, + (byte) 1, + (byte) 64, + (byte) 1); } else if (fromSlot > 0) { byte toSide; if ((aCoverVariable & EXPORT_MASK) > 0) toSide = aSide; else toSide = GT_Utility.getOppositeSide(aSide); - if (fromTile instanceof IInventory) - movedItems = GT_Utility.moveFromSlotToSide( - (IInventory) fromTile, - toTile, - fromSlot - 1, - toSide, - null, - false, - (byte) 64, - (byte) 1, - (byte) 64, - (byte) 1); + if (fromTile instanceof IInventory) movedItems = GT_Utility.moveFromSlotToSide( + (IInventory) fromTile, + toTile, + fromSlot - 1, + toSide, + null, + false, + (byte) 64, + (byte) 1, + (byte) 64, + (byte) 1); } else { byte fromSide, toSide; if ((aCoverVariable & EXPORT_MASK) > 0) { @@ -129,22 +140,24 @@ public class GT_Cover_Arm extends GT_CoverBehavior { toSide = aSide; } movedItems = GT_Utility.moveOneItemStack( - fromTile, toTile, fromSide, toSide, null, false, (byte) 64, (byte) 1, (byte) 64, (byte) 1); + fromTile, + toTile, + fromSide, + toSide, + null, + false, + (byte) 64, + (byte) 1, + (byte) 64, + (byte) 1); } return aCoverVariable; } @Override - public int onCoverScrewdriverclick( - byte aSide, - int aCoverID, - int aCoverVariable, - ICoverable aTileEntity, - EntityPlayer aPlayer, - float aX, - float aY, - float aZ) { + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, + EntityPlayer aPlayer, float aX, float aY, float aZ) { int step = 0; if (GT_Utility.getClickedFacingCoords(aSide, aX, aY, aZ)[0] >= 0.5F) { step += aPlayer.isSneaking() ? 256 : 16; @@ -157,15 +170,9 @@ public class GT_Cover_Arm extends GT_CoverBehavior { } @Override - protected boolean onCoverRightClickImpl( - byte aSide, - int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, - ICoverable aTileEntity, - EntityPlayer aPlayer, - float aX, - float aY, - float aZ) { + protected boolean onCoverRightClickImpl(byte aSide, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, + float aY, float aZ) { int step = (GT_Utility.getClickedFacingCoords(aSide, aX, aY, aZ)[0] >= 0.5F) ? 1 : -1; int tCoverVariable = getNewVar(aCoverVariable.get(), step); sendMessageToPlayer(aPlayer, tCoverVariable); @@ -175,15 +182,8 @@ public class GT_Cover_Arm extends GT_CoverBehavior { @Override @SuppressWarnings("deprecation") - public boolean onCoverRightclick( - byte aSide, - int aCoverID, - int aCoverVariable, - ICoverable aTileEntity, - EntityPlayer aPlayer, - float aX, - float aY, - float aZ) { + public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, + EntityPlayer aPlayer, float aX, float aY, float aZ) { int step = (GT_Utility.getClickedFacingCoords(aSide, aX, aY, aZ)[0] >= 0.5F) ? 1 : -1; aCoverVariable = getNewVar(aCoverVariable, step); sendMessageToPlayer(aPlayer, aCoverVariable); @@ -192,13 +192,12 @@ public class GT_Cover_Arm extends GT_CoverBehavior { } private void sendMessageToPlayer(EntityPlayer aPlayer, int var) { - if ((var & EXPORT_MASK) != 0) - GT_Utility.sendChatToPlayer( - aPlayer, - GT_Utility.trans("001", "Puts out into adjacent Slot #") + (((var >> 14) & SLOT_ID_MASK) - 1)); - else - GT_Utility.sendChatToPlayer( - aPlayer, GT_Utility.trans("002", "Grabs in for own Slot #") + ((var & SLOT_ID_MASK) - 1)); + if ((var & EXPORT_MASK) != 0) GT_Utility.sendChatToPlayer( + aPlayer, + GT_Utility.trans("001", "Puts out into adjacent Slot #") + (((var >> 14) & SLOT_ID_MASK) - 1)); + else GT_Utility.sendChatToPlayer( + aPlayer, + GT_Utility.trans("002", "Grabs in for own Slot #") + ((var & SLOT_ID_MASK) - 1)); } private int getNewVar(int var, int step) { @@ -305,7 +304,8 @@ public class GT_Cover_Arm extends GT_CoverBehavior { @Override protected void addUIWidgets(ModularWindow.Builder builder) { maxSlot = getMaxSlot(); - builder.widget(new CoverDataControllerWidget<>(this::getCoverData, this::setCoverData, GT_Cover_Arm.this) + builder.widget( + new CoverDataControllerWidget<>(this::getCoverData, this::setCoverData, GT_Cover_Arm.this) .addFollower( CoverDataFollower_ToggleButtonWidget.ofDisableable(), coverData -> getFlagExport(convert(coverData)) > 0, @@ -341,79 +341,73 @@ public class GT_Cover_Arm extends GT_CoverBehavior { coverData -> getTextFieldContent(getFlagInternalSlot(convert(coverData)) - 1), (coverData, state) -> { final int coverVariable = convert(coverData); - return new ISerializableObject.LegacyCoverData(getFlagExport(coverVariable) - | ((getIntFromText(state) + 1) & SLOT_ID_MASK) - | (getFlagAdjacentSlot(coverVariable) << 14) - | CONVERTED_BIT); + return new ISerializableObject.LegacyCoverData( + getFlagExport(coverVariable) + | ((getIntFromText(state) + 1) & SLOT_ID_MASK) + | (getFlagAdjacentSlot(coverVariable) << 14) + | CONVERTED_BIT); }, - widget -> widget.setOnScrollText() - .setValidator(val -> { - final int valSlot = getIntFromText(val); - if (valSlot > -1) { - return TextFieldWidget.format.format(Math.min(valSlot, maxSlot)); - } else { - return ANY_TEXT; - } - }) - .setPattern(BaseTextFieldWidget.NATURAL_NUMS) - .setFocusOnGuiOpen(true) - .setPos(spaceX * 0, spaceY * 1 + 2) - .setSize(spaceX * 2 + 5, 12)) + widget -> widget.setOnScrollText().setValidator(val -> { + final int valSlot = getIntFromText(val); + if (valSlot > -1) { + return TextFieldWidget.format.format(Math.min(valSlot, maxSlot)); + } else { + return ANY_TEXT; + } + }).setPattern(BaseTextFieldWidget.NATURAL_NUMS).setFocusOnGuiOpen(true) + .setPos(spaceX * 0, spaceY * 1 + 2).setSize(spaceX * 2 + 5, 12)) .addFollower( new CoverDataFollower_TextFieldWidget<>(), coverData -> getTextFieldContent(getFlagAdjacentSlot(convert(coverData)) - 1), (coverData, state) -> { final int coverVariable = convert(coverData); - return new ISerializableObject.LegacyCoverData(getFlagExport(coverVariable) - | getFlagInternalSlot(coverVariable) - | (((getIntFromText(state) + 1) & SLOT_ID_MASK) << 14) - | CONVERTED_BIT); + return new ISerializableObject.LegacyCoverData( + getFlagExport(coverVariable) | getFlagInternalSlot(coverVariable) + | (((getIntFromText(state) + 1) & SLOT_ID_MASK) << 14) + | CONVERTED_BIT); }, widget -> widget.setValidator(val -> { - final int valSlot = getIntFromText(val); - final int adjacentMaxSlot; - final ICoverable tile = - getUIBuildContext().getTile(); - if (tile instanceof TileEntity && !tile.isDead()) { - TileEntity adj = tile.getTileEntityAtSide( - getUIBuildContext().getCoverSide()); - if (adj instanceof IInventory) - adjacentMaxSlot = ((IInventory) adj).getSizeInventory() - 1; - else adjacentMaxSlot = -1; - } else { - adjacentMaxSlot = -1; - } - if (valSlot > -1) { - return TextFieldWidget.format.format( - Math.min(valSlot, adjacentMaxSlot)); - } else { - return ANY_TEXT; - } - }) - .setOnScroll((text, direction) -> { - final int val = getIntFromText(text); - int step = (GuiScreen.isShiftKeyDown() - ? 50 - : GuiScreen.isCtrlKeyDown() ? 5 : 1) - * direction; - return TextFieldWidget.format.format(val + step); - }) - .setPattern(BaseTextFieldWidget.NATURAL_NUMS) - .setPos(spaceX * 0, spaceY * 2 + 2) + final int valSlot = getIntFromText(val); + final int adjacentMaxSlot; + final ICoverable tile = getUIBuildContext().getTile(); + if (tile instanceof TileEntity && !tile.isDead()) { + TileEntity adj = tile + .getTileEntityAtSide(getUIBuildContext().getCoverSide()); + if (adj instanceof IInventory) + adjacentMaxSlot = ((IInventory) adj).getSizeInventory() - 1; + else adjacentMaxSlot = -1; + } else { + adjacentMaxSlot = -1; + } + if (valSlot > -1) { + return TextFieldWidget.format.format(Math.min(valSlot, adjacentMaxSlot)); + } else { + return ANY_TEXT; + } + }).setOnScroll((text, direction) -> { + final int val = getIntFromText(text); + int step = (GuiScreen.isShiftKeyDown() ? 50 : GuiScreen.isCtrlKeyDown() ? 5 : 1) + * direction; + return TextFieldWidget.format.format(val + step); + }).setPattern(BaseTextFieldWidget.NATURAL_NUMS).setPos(spaceX * 0, spaceY * 2 + 2) .setSize(spaceX * 2 + 5, 12)) .setPos(startX, startY)) - .widget(TextWidget.dynamicString(() -> (convert(getCoverData()) & EXPORT_MASK) > 0 - ? GT_Utility.trans("006", "Export") - : GT_Utility.trans("007", "Import")) - .setSynced(false) - .setDefaultColor(COLOR_TEXT_GRAY.get()) - .setPos(startX + spaceX * 3, 4 + startY + spaceY * 0)) - .widget(new TextWidget(GT_Utility.trans("254.1", "Internal slot#")) - .setDefaultColor(COLOR_TEXT_GRAY.get()) - .setPos(startX + spaceX * 3, 4 + startY + spaceY * 1)) - .widget(new TextWidget(GT_Utility.trans("255", "Adjacent slot#")) - .setDefaultColor(COLOR_TEXT_GRAY.get()) - .setPos(startX + spaceX * 3, 4 + startY + spaceY * 2)); + .widget( + TextWidget + .dynamicString( + () -> (convert(getCoverData()) & EXPORT_MASK) > 0 + ? GT_Utility.trans("006", "Export") + : GT_Utility.trans("007", "Import")) + .setSynced(false).setDefaultColor(COLOR_TEXT_GRAY.get()) + .setPos(startX + spaceX * 3, 4 + startY + spaceY * 0)) + .widget( + new TextWidget(GT_Utility.trans("254.1", "Internal slot#")) + .setDefaultColor(COLOR_TEXT_GRAY.get()) + .setPos(startX + spaceX * 3, 4 + startY + spaceY * 1)) + .widget( + new TextWidget(GT_Utility.trans("255", "Adjacent slot#")) + .setDefaultColor(COLOR_TEXT_GRAY.get()) + .setPos(startX + spaceX * 3, 4 + startY + spaceY * 2)); } private int getMaxSlot() { diff --git a/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java b/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java index f45ffbf2e8..f3176896f8 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java @@ -2,8 +2,13 @@ package gregtech.common.covers; import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; + import com.gtnewhorizons.modularui.api.screen.ModularWindow; import com.gtnewhorizons.modularui.common.widget.TextWidget; + import gregtech.api.gui.modularui.GT_CoverUIBuildContext; import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; @@ -15,9 +20,6 @@ import gregtech.api.util.GT_Utility; import gregtech.api.util.ISerializableObject; import gregtech.common.gui.modularui.widget.CoverDataControllerWidget; import gregtech.common.gui.modularui.widget.CoverDataFollower_ToggleButtonWidget; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.Fluid; public class GT_Cover_ControlsWork extends GT_CoverBehavior implements IControlsWorkCover { @@ -34,8 +36,8 @@ public class GT_Cover_ControlsWork extends GT_CoverBehavior implements IControls } @Override - public int doCoverThings( - byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, + long aTimer) { if (!makeSureOnlyOne(aSide, aTileEntity)) return 0; if (aTileEntity instanceof IMachineProgress) { IMachineProgress machine = (IMachineProgress) aTileEntity; @@ -71,18 +73,15 @@ public class GT_Cover_ControlsWork extends GT_CoverBehavior implements IControls } @Override - protected boolean isRedstoneSensitiveImpl( - byte aSide, - int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, - ICoverable aTileEntity, - long aTimer) { + protected boolean isRedstoneSensitiveImpl(byte aSide, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity, long aTimer) { return aCoverVariable.get() != 2; // always off, so no redstone needed either } /** - * Make sure there is only one GT_Cover_ControlsWork on the aTileEntity - * TODO this is a migration thing. Remove this after 2.3.0 is released. + * Make sure there is only one GT_Cover_ControlsWork on the aTileEntity TODO this is a migration thing. Remove this + * after 2.3.0 is released. + * * @return true if the cover is the first (side) one **/ private boolean makeSureOnlyOne(byte aSide, ICoverable aTileEntity) { @@ -120,8 +119,8 @@ public class GT_Cover_ControlsWork extends GT_CoverBehavior implements IControls } @Override - public boolean onCoverRemoval( - byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, boolean aForced) { + public boolean onCoverRemoval(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, + boolean aForced) { if ((aTileEntity instanceof IMachineProgress)) { ((IMachineProgress) aTileEntity).enableWorking(); ((IMachineProgress) aTileEntity).setWorkDataValue((byte) 0); @@ -130,15 +129,8 @@ public class GT_Cover_ControlsWork extends GT_CoverBehavior implements IControls } @Override - public int onCoverScrewdriverclick( - byte aSide, - int aCoverID, - int aCoverVariable, - ICoverable aTileEntity, - EntityPlayer aPlayer, - float aX, - float aY, |
