From 4440ea5a1c6c7e7a1ddf56908f0487bdbe6fc11d Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Mon, 23 Jan 2023 20:52:19 +0800 Subject: [PATCH 01/10] colorful tooltips and 16384k cell --- .../item/ItemBasicFluidStorageCell.java | 25 ++++++++---- .../item/ItemBasicFluidStoragePart.java | 7 +++- .../github/common/storage/CellType.java | 30 +++++++++++++- .../common/storage/FluidCellHandler.java | 1 + .../common/storage/FluidCellInventory.java | 37 ++++++++---------- .../github/loader/ItemAndBlockHolder.java | 3 ++ .../glodblock/github/loader/RecipeLoader.java | 32 ++++++++++----- .../resources/assets/ae2fc/lang/en_US.lang | 30 +++++++------- .../resources/assets/ae2fc/lang/ru_RU.lang | 28 ++++++------- .../resources/assets/ae2fc/lang/zh_CN.lang | 28 ++++++------- .../ae2fc/textures/items/fluid_part.7.png | Bin 0 -> 497 bytes .../textures/items/fluid_storage.16384.png | Bin 0 -> 486 bytes .../textures/items/fluid_storage.4096.png | Bin 371 -> 359 bytes 13 files changed, 139 insertions(+), 82 deletions(-) create mode 100644 src/main/resources/assets/ae2fc/textures/items/fluid_part.7.png create mode 100644 src/main/resources/assets/ae2fc/textures/items/fluid_storage.16384.png diff --git a/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java b/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java index a20c1a53..9ef3b0d9 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java +++ b/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java @@ -41,6 +41,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; import net.minecraft.world.World; @@ -94,6 +95,10 @@ public class ItemBasicFluidStorageCell extends AEBaseItem this.idleDrain = 3.5; this.perType = 8; break; + case Cell16384kPart: + this.idleDrain = 4.0; + this.perType = 8; + break; default: this.idleDrain = 0.0; this.perType = 8; @@ -106,7 +111,10 @@ public class ItemBasicFluidStorageCell extends AEBaseItem @Override public String getItemStackDisplayName(ItemStack stack) { - return StatCollector.translateToLocalFormatted("item.fluid_storage." + this.totalBytes / 1024 + ".name"); + return StatCollector.translateToLocalFormatted( + "item.fluid_storage." + this.totalBytes / 1024 + ".name", + CellType.getTypeColor(this.component), + EnumChatFormatting.RESET); } @Override @@ -136,11 +144,14 @@ public class ItemBasicFluidStorageCell extends AEBaseItem final IFluidCellInventory cellInventory = handler.getCellInv(); if (cellInventory != null) { - lines.add(cellInventory.getUsedBytes() + " " + GuiText.Of.getLocal() + ' ' - + cellInventory.getTotalBytes() + ' ' + GuiText.BytesUsed.getLocal()); - - lines.add(cellInventory.getStoredFluidTypes() + " " + GuiText.Of.getLocal() + ' ' - + cellInventory.getTotalFluidTypes() + ' ' + GuiText.Types.getLocal()); + lines.add(EnumChatFormatting.WHITE + String.valueOf(cellInventory.getUsedBytes()) + + EnumChatFormatting.GRAY + " " + GuiText.Of.getLocal() + " " + + EnumChatFormatting.DARK_GREEN + cellInventory.getTotalBytes() + " " + + EnumChatFormatting.GRAY + GuiText.BytesUsed.getLocal()); + lines.add(EnumChatFormatting.WHITE + String.valueOf(cellInventory.getStoredFluidTypes()) + + EnumChatFormatting.GRAY + " " + GuiText.Of.getLocal() + " " + + EnumChatFormatting.DARK_GREEN + cellInventory.getTotalFluidTypes() + " " + + EnumChatFormatting.GRAY + GuiText.Types.getLocal()); if (GuiScreen.isCtrlKeyDown()) { if (cellInventory.getStoredFluidTypes() > 0) { @@ -148,7 +159,7 @@ public class ItemBasicFluidStorageCell extends AEBaseItem for (IAEFluidStack fluid : cellInventory.getContents()) { if (fluid != null) { lines.add(String.format( - " %s x%smB", + " %s x%s mB", fluid.getFluidStack().getLocalizedName(), format.toWideReadableForm(fluid.getStackSize()))); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStoragePart.java b/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStoragePart.java index 6c331c84..6d601423 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStoragePart.java +++ b/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStoragePart.java @@ -2,6 +2,7 @@ package com.glodblock.github.common.item; import com.glodblock.github.FluidCraft; import com.glodblock.github.common.Config; +import com.glodblock.github.common.storage.CellType; import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.util.NameConst; import cpw.mods.fml.common.registry.GameRegistry; @@ -13,12 +14,13 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; public class ItemBasicFluidStoragePart extends FCBaseItem { - public static final int types = 7; + public static final int types = 8; private static final HashMap icon = new HashMap<>(); public ItemBasicFluidStoragePart() { @@ -39,7 +41,8 @@ public class ItemBasicFluidStoragePart extends FCBaseItem { @Override public String getItemStackDisplayName(ItemStack stack) { int meta = stack.getItemDamage(); - return StatCollector.translateToLocalFormatted("item.fluid_part." + meta + ".name"); + return StatCollector.translateToLocalFormatted( + "item.fluid_part." + meta + ".name", CellType.getTypeColor(meta), EnumChatFormatting.RESET); } @Override diff --git a/src/main/java/com/glodblock/github/common/storage/CellType.java b/src/main/java/com/glodblock/github/common/storage/CellType.java index d52b4dfc..5c29f233 100644 --- a/src/main/java/com/glodblock/github/common/storage/CellType.java +++ b/src/main/java/com/glodblock/github/common/storage/CellType.java @@ -4,6 +4,7 @@ import appeng.core.features.AEFeature; import java.util.EnumSet; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; public enum CellType { Cell1kPart(0, AEFeature.StorageCells), @@ -12,7 +13,8 @@ public enum CellType { Cell64kPart(3, AEFeature.StorageCells), Cell256kPart(4, AEFeature.StorageCells), Cell1024kPart(5, AEFeature.StorageCells), - Cell4096kPart(6, AEFeature.StorageCells); + Cell4096kPart(6, AEFeature.StorageCells), + Cell16384kPart(7, AEFeature.StorageCells); private final EnumSet features; private int damageValue; @@ -46,4 +48,30 @@ public enum CellType { public void setItemInstance(final Item itemInstance) { this.itemInstance = itemInstance; } + + public static EnumChatFormatting getTypeColor(int type) { + return getTypeColor(CellType.values()[type % CellType.values().length]); + } + + public static EnumChatFormatting getTypeColor(CellType type) { + switch (type) { + case Cell1kPart: + return EnumChatFormatting.GOLD; + case Cell4kPart: + return EnumChatFormatting.YELLOW; + case Cell16kPart: + return EnumChatFormatting.GREEN; + case Cell64kPart: + return EnumChatFormatting.AQUA; + case Cell256kPart: + return EnumChatFormatting.BLUE; + case Cell1024kPart: + return EnumChatFormatting.LIGHT_PURPLE; + case Cell4096kPart: + return EnumChatFormatting.RED; + case Cell16384kPart: + return EnumChatFormatting.DARK_PURPLE; + } + return EnumChatFormatting.WHITE; + } } diff --git a/src/main/java/com/glodblock/github/common/storage/FluidCellHandler.java b/src/main/java/com/glodblock/github/common/storage/FluidCellHandler.java index 92f08d1a..0c64c131 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellHandler.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellHandler.java @@ -20,6 +20,7 @@ public class FluidCellHandler implements ICellHandler { } @Override + @SuppressWarnings("rawtypes") public IMEInventoryHandler getCellInventory( final ItemStack is, final ISaveProvider container, final StorageChannel channel) { if (channel == StorageChannel.FLUIDS) { diff --git a/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java b/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java index 47028642..efd7b2ee 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java @@ -39,6 +39,22 @@ public class FluidCellInventory implements IFluidCellInventory { public static final int singleByteAmount = 256 * 8; public FluidCellInventory(final ItemStack o, final ISaveProvider container) throws AppEngException { + if (o == null) { + throw new AppEngException("ItemStack was used as a cell, but was not a cell!"); + } + this.cellType = null; + this.cellItem = o; + final Item type = this.cellItem.getItem(); + if (type instanceof IStorageFluidCell) { + this.cellType = (IStorageFluidCell) this.cellItem.getItem(); + } + if (this.cellType == null) { + throw new AppEngException("ItemStack was used as a cell, but was not a cell!"); + } + if (!this.cellType.isStorageCell(this.cellItem)) { + throw new AppEngException("ItemStack was used as a cell, but was not a cell!"); + } + if (fluidSlots == null) { fluidSlots = new String[MAX_TYPE]; fluidSlotCount = new String[MAX_TYPE]; @@ -49,27 +65,6 @@ public class FluidCellInventory implements IFluidCellInventory { } } - if (o == null) { - throw new AppEngException("ItemStack was used as a cell, but was not a cell!"); - } - - this.cellType = null; - this.cellItem = o; - - final Item type = this.cellItem.getItem(); - - if (type instanceof IStorageFluidCell) { - this.cellType = (IStorageFluidCell) this.cellItem.getItem(); - } - - if (this.cellType == null) { - throw new AppEngException("ItemStack was used as a cell, but was not a cell!"); - } - - if (!this.cellType.isStorageCell(this.cellItem)) { - throw new AppEngException("ItemStack was used as a cell, but was not a cell!"); - } - this.container = container; this.tagCompound = Platform.openNbtData(o); this.storedFluids = this.tagCompound.getShort(FLUID_TYPE_TAG); diff --git a/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java b/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java index 5d376b55..7999bc65 100644 --- a/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java +++ b/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java @@ -40,6 +40,8 @@ public class ItemAndBlockHolder { new ItemBasicFluidStorageCell(CellType.Cell1024kPart, 1024).register(); public static ItemBasicFluidStorageCell CELL4096K = new ItemBasicFluidStorageCell(CellType.Cell4096kPart, 4096).register(); + public static ItemBasicFluidStorageCell CELL16384K = + new ItemBasicFluidStorageCell(CellType.Cell16384kPart, 16384).register(); public static ItemBasicFluidStoragePart CELL_PART = new ItemBasicFluidStoragePart().register(); public static void loadSetting() { @@ -51,5 +53,6 @@ public class ItemAndBlockHolder { CellType.Cell256kPart.setItemInstance(CELL_PART); CellType.Cell1024kPart.setItemInstance(CELL_PART); CellType.Cell4096kPart.setItemInstance(CELL_PART); + CellType.Cell16384kPart.setItemInstance(CELL_PART); } } diff --git a/src/main/java/com/glodblock/github/loader/RecipeLoader.java b/src/main/java/com/glodblock/github/loader/RecipeLoader.java index 673a9c7d..53b4b6f0 100644 --- a/src/main/java/com/glodblock/github/loader/RecipeLoader.java +++ b/src/main/java/com/glodblock/github/loader/RecipeLoader.java @@ -177,7 +177,7 @@ public class RecipeLoader implements Runnable { "CEC", "DCD", 'D', - "dyeBlue", + "dyeRed", 'C', "anyCertusCrystal", 'E', @@ -188,7 +188,7 @@ public class RecipeLoader implements Runnable { "CGC", "DCD", 'D', - "dyeBlue", + "dyeRed", 'C', CellType.Cell1kPart.stack(1), 'P', @@ -201,7 +201,7 @@ public class RecipeLoader implements Runnable { "CGC", "DCD", 'D', - "dyeBlue", + "dyeRed", 'C', CellType.Cell4kPart.stack(1), 'P', @@ -214,7 +214,7 @@ public class RecipeLoader implements Runnable { "CGC", "DCD", 'D', - "dyeBlue", + "dyeRed", 'C', CellType.Cell16kPart.stack(1), 'P', @@ -227,7 +227,7 @@ public class RecipeLoader implements Runnable { "CGC", "DCD", 'D', - "dyeBlue", + "dyeRed", 'C', CellType.Cell64kPart.stack(1), 'P', @@ -240,7 +240,7 @@ public class RecipeLoader implements Runnable { "CGC", "DCD", 'D', - "dyeBlue", + "dyeRed", 'C', CellType.Cell256kPart.stack(1), 'P', @@ -253,16 +253,30 @@ public class RecipeLoader implements Runnable { "CGC", "DCD", 'D', - "dyeBlue", + "dyeRed", 'C', CellType.Cell1024kPart.stack(1), 'P', + AE2_PROCESS_CAL, + 'G', + AE2_LAMP_GLASS)); + GameRegistry.addRecipe(new ShapedOreRecipe( + CellType.Cell16384kPart.stack(1), + "DPD", + "CGC", + "DCD", + 'D', + "dyeRed", + 'C', + CellType.Cell4096kPart.stack(1), + 'P', AE2_PROCESS_ENG, 'G', AE2_LAMP_GLASS)); - ItemBasicFluidStorageCell[] cells = - new ItemBasicFluidStorageCell[] {CELL1K, CELL4K, CELL16K, CELL64K, CELL256K, CELL1024K, CELL4096K}; + ItemBasicFluidStorageCell[] cells = new ItemBasicFluidStorageCell[] { + CELL1K, CELL4K, CELL16K, CELL64K, CELL256K, CELL1024K, CELL4096K, CELL16384K + }; for (ItemBasicFluidStorageCell cell : cells) { GameRegistry.addRecipe(new ShapedOreRecipe( diff --git a/src/main/resources/assets/ae2fc/lang/en_US.lang b/src/main/resources/assets/ae2fc/lang/en_US.lang index cd18c2c3..b233d81f 100644 --- a/src/main/resources/assets/ae2fc/lang/en_US.lang +++ b/src/main/resources/assets/ae2fc/lang/en_US.lang @@ -9,20 +9,22 @@ item.part_fluid_export.name=ME Fluid Export Bus item.part_fluid_storage_bus.name=ME Fluid Storage Bus item.part_fluid_level_emitter.name=ME Fluid Level Emitter item.fluid_packet.name=Fluid Packet -item.fluid_storage.1.name=1k ME Fluid Storage Cell -item.fluid_storage.4.name=4k ME Fluid Storage Cell -item.fluid_storage.16.name=16k ME Fluid Storage Cell -item.fluid_storage.64.name=64k ME Fluid Storage Cell -item.fluid_storage.256.name=256k ME Fluid Storage Cell -item.fluid_storage.1024.name=1024k ME Fluid Storage Cell -item.fluid_storage.4096.name=4096k ME Fluid Storage Cell -item.fluid_part.0.name=1k ME Fluid Storage Component -item.fluid_part.1.name=4k ME Fluid Storage Component -item.fluid_part.2.name=16k ME Fluid Storage Component -item.fluid_part.3.name=64k ME Fluid Storage Component -item.fluid_part.4.name=256k ME Fluid Storage Component -item.fluid_part.5.name=1024k ME Fluid Storage Component -item.fluid_part.6.name=4096k ME Fluid Storage Component +item.fluid_storage.1.name=%s1k%s ME Fluid Storage Cell +item.fluid_storage.4.name=%s4k%s ME Fluid Storage Cell +item.fluid_storage.16.name=%s16k%s ME Fluid Storage Cell +item.fluid_storage.64.name=%s64k%s ME Fluid Storage Cell +item.fluid_storage.256.name=%s256k%s ME Fluid Storage Cell +item.fluid_storage.1024.name=%s1024k%s ME Fluid Storage Cell +item.fluid_storage.4096.name=%s4096k%s ME Fluid Storage Cell +item.fluid_storage.16384.name=%s16384k%s ME Fluid Storage Cell +item.fluid_part.0.name=%s1k%s ME Fluid Storage Component +item.fluid_part.1.name=%s4k%s ME Fluid Storage Component +item.fluid_part.2.name=%s16k%s ME Fluid Storage Component +item.fluid_part.3.name=%s64k%s ME Fluid Storage Component +item.fluid_part.4.name=%s256k%s ME Fluid Storage Component +item.fluid_part.5.name=%s1024k%s ME Fluid Storage Component +item.fluid_part.6.name=%s4096k%s ME Fluid Storage Component +item.fluid_part.7.name=%s16384k%s ME Fluid Storage Component tile.fluid_discretizer.name=Fluid Discretizer tile.fluid_pattern_encoder.name=Fluid Pattern Encoder diff --git a/src/main/resources/assets/ae2fc/lang/ru_RU.lang b/src/main/resources/assets/ae2fc/lang/ru_RU.lang index 7e6d54d6..982ee0ff 100644 --- a/src/main/resources/assets/ae2fc/lang/ru_RU.lang +++ b/src/main/resources/assets/ae2fc/lang/ru_RU.lang @@ -6,20 +6,20 @@ item.part_fluid_interface.name=Жидкостный интерфейс item.part_fluid_import.name=МЭ жидкостная шина импорта item.part_fluid_export.name=МЭ жидкостная шина экспорта item.fluid_packet.name=Жидкостный пакет -item.fluid_storage.1.name=1К МЭ жидкостная ячейка хранения -item.fluid_storage.4.name=4К МЭ жидкостная ячейка хранения -item.fluid_storage.16.name=16К МЭ жидкостная ячейка хранения -item.fluid_storage.64.name=64К МЭ жидкостная ячейка хранения -item.fluid_storage.256.name=256К МЭ жидкостная ячейка хранения -item.fluid_storage.1024.name=1024К МЭ жидкостная ячейка хранения -item.fluid_storage.4096.name=4096К МЭ жидкостная ячейка хранения -item.fluid_part.0.name=1К МЭ жидкостный компонент хранения -item.fluid_part.1.name=4К МЭ жидкостный компонент хранения -item.fluid_part.2.name=16К МЭ жидкостный компонент хранения -item.fluid_part.3.name=64К МЭ жидкостный компонент хранения -item.fluid_part.4.name=256К МЭ жидкостный компонент хранения -item.fluid_part.5.name=1024К МЭ жидкостный компонент хранения -item.fluid_part.6.name=4096К МЭ жидкостный компонент хранения +item.fluid_storage.1.name=%s1К%s МЭ жидкостная ячейка хранения +item.fluid_storage.4.name=%s4К%s МЭ жидкостная ячейка хранения +item.fluid_storage.16.name=%s16К%s МЭ жидкостная ячейка хранения +item.fluid_storage.64.name=%s64К%s МЭ жидкостная ячейка хранения +item.fluid_storage.256.name=%s256К%s МЭ жидкостная ячейка хранения +item.fluid_storage.1024.name=%s1024К%s МЭ жидкостная ячейка хранения +item.fluid_storage.4096.name=%s4096К%s МЭ жидкостная ячейка хранения +item.fluid_part.0.name=%s1К%s МЭ жидкостный компонент хранения +item.fluid_part.1.name=%s4К%s МЭ жидкостный компонент хранения +item.fluid_part.2.name=%s16К%s МЭ жидкостный компонент хранения +item.fluid_part.3.name=%s64К%s МЭ жидкостный компонент хранения +item.fluid_part.4.name=%s256К%s МЭ жидкостный компонент хранения +item.fluid_part.5.name=%s1024К%s МЭ жидкостный компонент хранения +item.fluid_part.6.name=%s4096К%s МЭ жидкостный компонент хранения tile.fluid_discretizer.name=Дискретизатор жидкости tile.fluid_pattern_encoder.name=Кодировщик жидкостных шаблонов diff --git a/src/main/resources/assets/ae2fc/lang/zh_CN.lang b/src/main/resources/assets/ae2fc/lang/zh_CN.lang index bbbc0f3a..8089a2f6 100644 --- a/src/main/resources/assets/ae2fc/lang/zh_CN.lang +++ b/src/main/resources/assets/ae2fc/lang/zh_CN.lang @@ -8,20 +8,20 @@ item.part_fluid_import.name=ME流体输入总线 item.part_fluid_export.name=ME流体输出总线 item.part_fluid_level_emitter.name=ME流体发信器 item.fluid_packet.name=流体封包 -item.fluid_storage.1.name=1k-ME流体存储元件 -item.fluid_storage.4.name=4k-ME流体存储元件 -item.fluid_storage.16.name=16k-ME流体存储元件 -item.fluid_storage.64.name=64k-ME流体存储元件 -item.fluid_storage.256.name=256k-ME流体存储元件 -item.fluid_storage.1024.name=1024k-ME流体存储元件 -item.fluid_storage.4096.name=4096k-ME流体存储元件 -item.fluid_part.0.name=1k-ME流体存储组件 -item.fluid_part.1.name=4k-ME流体存储组件 -item.fluid_part.2.name=16k-ME流体存储组件 -item.fluid_part.3.name=64k-ME流体存储组件 -item.fluid_part.4.name=256k-ME流体存储组件 -item.fluid_part.5.name=1024k-ME流体存储组件 -item.fluid_part.6.name=4096k-ME流体存储组件 +item.fluid_storage.1.name=%s1k%s-ME流体存储元件 +item.fluid_storage.4.name=%s4k%s-ME流体存储元件 +item.fluid_storage.16.name=%s16k%s-ME流体存储元件 +item.fluid_storage.64.name=%s64k%s-ME流体存储元件 +item.fluid_storage.256.name=%s256k%s-ME流体存储元件 +item.fluid_storage.1024.name=%s1024k%s-ME流体存储元件 +item.fluid_storage.4096.name=%s4096k%s-ME流体存储元件 +item.fluid_part.0.name=%s1k%s-ME流体存储组件 +item.fluid_part.1.name=%s4k%s-ME流体存储组件 +item.fluid_part.2.name=%s16k%s-ME流体存储组件 +item.fluid_part.3.name=%s64k%s-ME流体存储组件 +item.fluid_part.4.name=%s256k%s-ME流体存储组件 +item.fluid_part.5.name=%s1024k%s-ME流体存储组件 +item.fluid_part.6.name=%s4096k%s-ME流体存储组件 tile.fluid_discretizer.name=ME流体离散器 tile.fluid_pattern_encoder.name=流体适配型样板编码台 diff --git a/src/main/resources/assets/ae2fc/textures/items/fluid_part.7.png b/src/main/resources/assets/ae2fc/textures/items/fluid_part.7.png new file mode 100644 index 0000000000000000000000000000000000000000..8fbf73324ace42c86a31f3a5c652d42682dfa272 GIT binary patch literal 497 zcmVE*M{Kg8B$Nmu#BkIp zu&E&j*P^VD42&P=*?aw;(Bg&1yZ^p>&b#;A_i0j-{^HkGmi6bC9`iT1Qfxmy%Cp^J zpT{O$-Lyphlo2dPLwZF`iEpdb$`&`AIqY+~91V>V09=eK^q$R9BOR8+1CU`1PL$kVq=5p!AH!&$mKYu0e%j}K01hK nc_Ao9WweNv7dL}wawDQ|e1QO*RfMgm00000NkvXXu0mjfBMR18 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ae2fc/textures/items/fluid_storage.16384.png b/src/main/resources/assets/ae2fc/textures/items/fluid_storage.16384.png new file mode 100644 index 0000000000000000000000000000000000000000..0b987302ede43dc3f97d5a466209f7c61630d259 GIT binary patch literal 486 zcmV@P)ib%aYXZ}3mzOBe*SCQjv)*v%xt{`2E^intTM)|ZxmpEErM6w7 zQUPk}Oaw>IbKB_;(k;BFTP@`Bx&?vN1nNU9SHw{vm;Z!+aS8J5G_tWH4tZXI-|gm_ zz@YeRJOxoep#a(8Ks+{U6YU}#^LvPI2S)WVGL|NDn}DIeMwpr?*g)^6hNeR zBDzACrT%Bh${1zN#T?UPq`OC=#5K|V6Z_OV07*qoM6N<$f?Fos8~^|S literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ae2fc/textures/items/fluid_storage.4096.png b/src/main/resources/assets/ae2fc/textures/items/fluid_storage.4096.png index 44dbdad8116e7b6bc232b828a43adafd2351dcb7..407ed60dc7df2429bc8b4b5915a7bdbae230745a 100644 GIT binary patch delta 244 zcmV9<2*{tX@Ilt>V4eg|{w&B|skSv{Oi6^K1!QP{g4lgI#~HRH zZf3aqUH~OuzztZhSOuoF6dB-#9LhZo77NHp0BZ(iDlN1)#hDvHDGru4K7DzEHAjMS uBZ?Q00Z4<@qgh~+kIAKB&CU!A3=9B1B1L(smrB?G0000N-M>sJOw zM$8BRsRij_U|@hq7KWt3O-6SGHrqioNDoRFY?!hD?8lVEV2A+B@3637U;xX3)PU5Y z0GO%ktLJ071kGk-HCO`?n<3cbP*N|5bFZ}(!w`@^Vc~@A7_0000~CrS From 0a5a38341fbf619d2e4e431516faaaf930bd5a58 Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Mon, 23 Jan 2023 20:55:31 +0800 Subject: [PATCH 02/10] remove io port asm --- .../github/coremod/FCClassTransformer.java | 3 - .../transform/TitleIOPortTransformer.java | 57 ------------------- 2 files changed, 60 deletions(-) delete mode 100644 src/main/java/com/glodblock/github/coremod/transform/TitleIOPortTransformer.java diff --git a/src/main/java/com/glodblock/github/coremod/FCClassTransformer.java b/src/main/java/com/glodblock/github/coremod/FCClassTransformer.java index 9a519acf..a9edaf5d 100644 --- a/src/main/java/com/glodblock/github/coremod/FCClassTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/FCClassTransformer.java @@ -32,9 +32,6 @@ public class FCClassTransformer implements IClassTransformer { case "appeng.integration.modules.NEI": tform = NEITransfermer.INSTANCE; break; - case "appeng.tile.storage.TileIOPort": - tform = TitleIOPortTransformer.INSTANCE; - break; case "appeng.core.features.registries.ExternalStorageRegistry": tform = ExternalStorageRegistryTransformer.INSTANCE; break; diff --git a/src/main/java/com/glodblock/github/coremod/transform/TitleIOPortTransformer.java b/src/main/java/com/glodblock/github/coremod/transform/TitleIOPortTransformer.java deleted file mode 100644 index bdc35e4a..00000000 --- a/src/main/java/com/glodblock/github/coremod/transform/TitleIOPortTransformer.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.glodblock.github.coremod.transform; - -import com.glodblock.github.coremod.FCClassTransformer; -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.Opcodes; - -public class TitleIOPortTransformer extends FCClassTransformer.ClassMapper { - public static final TitleIOPortTransformer INSTANCE = new TitleIOPortTransformer(); - - private TitleIOPortTransformer() { - // NO-OP - } - - @Override - protected ClassVisitor getClassMapper(ClassVisitor downstream) { - return new TitleIOPortTransformer.TransformTitleIOPort(Opcodes.ASM5, downstream); - } - - private static class TransformTitleIOPort extends ClassVisitor { - - TransformTitleIOPort(int api, ClassVisitor cv) { - super(api, cv); - } - - @Override - public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { - if (name.equals("transferContents")) { - return new TitleIOPortTransformer.TransformTransferContents( - api, super.visitMethod(access, name, desc, signature, exceptions)); - } - return super.visitMethod(access, name, desc, signature, exceptions); - } - } - - private static class TransformTransferContents extends MethodVisitor { - - TransformTransferContents(int api, MethodVisitor mv) { - super(api, mv); - } - - @Override - public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { - if (opcode == Opcodes.INVOKESTATIC && owner.equals("java/lang/Math") && name.equals("min")) { - super.visitVarInsn(Opcodes.ALOAD, 6); - super.visitMethodInsn( - Opcodes.INVOKESTATIC, - "com/glodblock/github/coremod/hooker/CoreModHooks", - "IOPortMinSpeed", - "(JJLappeng/api/storage/StorageChannel;)J", - false); - } else { - super.visitMethodInsn(opcode, owner, name, desc, itf); - } - } - } -} From ea4014fc1ecb74c02defac8717db08b540c96824 Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Tue, 24 Jan 2023 15:48:10 +0800 Subject: [PATCH 03/10] fix fluid storage bus trigger --- .../glodblock/github/common/parts/PartFluidStorageBus.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidStorageBus.java b/src/main/java/com/glodblock/github/common/parts/PartFluidStorageBus.java index 00f69598..3ef27833 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidStorageBus.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidStorageBus.java @@ -56,6 +56,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; +import net.minecraftforge.fluids.IFluidHandler; public class PartFluidStorageBus extends PartUpgradeable implements IGridTickable, ICellContainer, IMEMonitorHandlerReceiver, IPriorityHost { @@ -289,6 +290,9 @@ public class PartFluidStorageBus extends PartUpgradeable this.resetCache(true); this.resetCache(); } + } else if (te instanceof IFluidHandler) { + this.resetCache(true); + this.resetCache(); } else { this.resetCache(false); } From e424230f96e0a2b4697f1996588a3efef7cb785b Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Wed, 25 Jan 2023 14:56:36 +0800 Subject: [PATCH 04/10] add missing super event handler --- .../com/glodblock/github/common/parts/PartFluidInterface.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidInterface.java b/src/main/java/com/glodblock/github/common/parts/PartFluidInterface.java index 0bb88fef..a54f4fdd 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidInterface.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidInterface.java @@ -122,11 +122,13 @@ public class PartFluidInterface extends PartInterface implements IDualHost { @MENetworkEventSubscribe public void stateChange(final MENetworkChannelsChanged c) { fluidDuality.onChannelStateChange(c); + super.stateChange(c); } @MENetworkEventSubscribe public void stateChange(final MENetworkPowerStatusChange c) { fluidDuality.onPowerStateChange(c); + super.stateChange(c); } @Override From fc9893ac32e357817b851ac77092e43e5289bc4d Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Sat, 28 Jan 2023 15:48:14 +0800 Subject: [PATCH 05/10] fix npe from two storage bus facing each other --- .../github/inventory/external/AEFluidInterfaceHandler.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/glodblock/github/inventory/external/AEFluidInterfaceHandler.java b/src/main/java/com/glodblock/github/inventory/external/AEFluidInterfaceHandler.java index 76dd9fc9..72e9d227 100644 --- a/src/main/java/com/glodblock/github/inventory/external/AEFluidInterfaceHandler.java +++ b/src/main/java/com/glodblock/github/inventory/external/AEFluidInterfaceHandler.java @@ -25,9 +25,11 @@ public class AEFluidInterfaceHandler implements IExternalStorageHandler { @SuppressWarnings("rawtypes") public IMEInventory getInventory(TileEntity te, ForgeDirection d, StorageChannel channel, BaseActionSource src) { if (channel == StorageChannel.FLUIDS) { - if (te instanceof ITileStorageMonitorable) { + if (te instanceof ITileStorageMonitorable + && ((ITileStorageMonitorable) te).getMonitorable(d, src) != null) { return ((ITileStorageMonitorable) te).getMonitorable(d, src).getFluidInventory(); - } else if (Util.getPart(te, d.getOpposite()) instanceof ITileStorageMonitorable) { + } else if (Util.getPart(te, d.getOpposite()) instanceof ITileStorageMonitorable + && ((ITileStorageMonitorable) Util.getPart(te, d.getOpposite())).getMonitorable(d, src) != null) { ITileStorageMonitorable part = (ITileStorageMonitorable) Util.getPart(te, d.getOpposite()); return part.getMonitorable(d, src).getFluidInventory(); } From 80340dbd75bbcae3e9a2266de648cc074ccb4ba8 Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Sat, 28 Jan 2023 23:15:33 +0800 Subject: [PATCH 06/10] add portable fluid cell --- .../github/client/gui/GuiDualInterface.java | 12 +- .../github/client/gui/GuiFCPriority.java | 8 +- .../github/client/gui/GuiFluidInterface.java | 3 +- .../client/gui/GuiFluidPortableCell.java | 23 +++ .../github/client/gui/GuiFluidStorageBus.java | 2 +- .../github/client/gui/GuiFluidTerminal.java | 8 + .../gui/container/ContainerFluidMonitor.java | 5 +- .../container/ContainerFluidPortableCell.java | 68 +++++++ .../com/glodblock/github/common/Config.java | 3 + .../common/block/BlockFluidDiscretizer.java | 3 +- .../common/block/BlockFluidPacketDecoder.java | 4 +- .../common/block/BlockLevelMaintainer.java | 3 +- .../github/common/block/FCBaseBlock.java | 6 - .../item/ItemBasicFluidStorageCell.java | 8 - .../common/item/ItemPortableFluidCell.java | 183 ++++++++++++++++++ .../common/parts/PartFluidInterface.java | 2 +- .../common/storage/FluidCellHandler.java | 25 +-- .../common/storage/FluidCellInventory.java | 4 +- .../github/inventory/gui/GuiType.java | 61 ++---- .../github/inventory/gui/ItemGuiFactory.java | 65 +++++++ .../inventory/gui/TileOrPartGuiFactory.java | 26 +++ .../inventory/item/IFluidPortableCell.java | 8 + .../github/inventory/item/IItemInventory.java | 9 + .../item/PortableFluidCellInventory.java | 71 +++++++ .../github/loader/ItemAndBlockHolder.java | 1 + .../com/glodblock/github/util/NameConst.java | 2 + .../com/glodblock/github/util/RenderUtil.java | 6 + .../resources/assets/ae2fc/lang/en_US.lang | 2 + .../textures/items/portable_fluid_cell.png | Bin 0 -> 485 bytes 29 files changed, 523 insertions(+), 98 deletions(-) create mode 100644 src/main/java/com/glodblock/github/client/gui/GuiFluidPortableCell.java create mode 100644 src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPortableCell.java create mode 100644 src/main/java/com/glodblock/github/common/item/ItemPortableFluidCell.java create mode 100644 src/main/java/com/glodblock/github/inventory/gui/ItemGuiFactory.java create mode 100644 src/main/java/com/glodblock/github/inventory/gui/TileOrPartGuiFactory.java create mode 100644 src/main/java/com/glodblock/github/inventory/item/IFluidPortableCell.java create mode 100644 src/main/java/com/glodblock/github/inventory/item/IItemInventory.java create mode 100644 src/main/java/com/glodblock/github/inventory/item/PortableFluidCellInventory.java create mode 100644 src/main/resources/assets/ae2fc/textures/items/portable_fluid_cell.png diff --git a/src/main/java/com/glodblock/github/client/gui/GuiDualInterface.java b/src/main/java/com/glodblock/github/client/gui/GuiDualInterface.java index 3d010ff3..11cf0279 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiDualInterface.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiDualInterface.java @@ -125,19 +125,11 @@ public class GuiDualInterface extends GuiUpgradeable { return; } if (btn == this.priority) { - if (isTile()) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.PRIORITY_TILE)); - } else if (isPart()) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.PRIORITY_PART)); - } + FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.PRIORITY)); } if (btn == this.switcher) { - if (isTile()) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.DUAL_INTERFACE_FLUID)); - } else if (isPart()) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.DUAL_INTERFACE_FLUID_PART)); - } + FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.DUAL_INTERFACE_FLUID)); } if (btn == this.interfaceMode) { diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java b/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java index 497abf90..729c0cfd 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java @@ -9,9 +9,8 @@ import appeng.helpers.IPriorityHost; import appeng.util.calculators.ArithHelper; import appeng.util.calculators.Calculator; import com.glodblock.github.client.gui.base.FCGuiAmount; -import com.glodblock.github.common.parts.PartFluidInterface; import com.glodblock.github.common.parts.PartFluidStorageBus; -import com.glodblock.github.common.tile.TileFluidInterface; +import com.glodblock.github.inventory.IDualHost; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.loader.ItemAndBlockHolder; import java.io.IOException; @@ -59,12 +58,9 @@ public class GuiFCPriority extends FCGuiAmount { @Override protected void setOriginGUI(Object target) { - if (target instanceof TileFluidInterface) { + if (target instanceof IDualHost) { this.myIcon = ItemAndBlockHolder.INTERFACE.stack(); this.originalGui = GuiType.DUAL_INTERFACE; - } else if (target instanceof PartFluidInterface) { - this.myIcon = ItemAndBlockHolder.FLUID_INTERFACE.stack(); - this.originalGui = GuiType.DUAL_INTERFACE_PART; } else if (target instanceof PartFluidStorageBus) { this.myIcon = ItemAndBlockHolder.FLUID_STORAGE_BUS.stack(); this.originalGui = GuiType.FLUID_STORAGE_BUS; diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidInterface.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidInterface.java index 0054ec81..64161f65 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidInterface.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidInterface.java @@ -117,8 +117,7 @@ public class GuiFluidInterface extends AEBaseGui { protected void actionPerformed(final GuiButton btn) { super.actionPerformed(btn); if (btn == this.switcher) { - FluidCraft.proxy.netHandler.sendToServer( - new CPacketSwitchGuis(isPart() ? GuiType.DUAL_INTERFACE_PART : GuiType.DUAL_INTERFACE)); + FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.DUAL_INTERFACE)); } } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPortableCell.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPortableCell.java new file mode 100644 index 00000000..11deb860 --- /dev/null +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPortableCell.java @@ -0,0 +1,23 @@ +package com.glodblock.github.client.gui; + +import appeng.container.slot.AppEngSlot; +import com.glodblock.github.client.gui.container.ContainerFluidPortableCell; +import com.glodblock.github.inventory.item.IFluidPortableCell; +import net.minecraft.entity.player.InventoryPlayer; + +public class GuiFluidPortableCell extends GuiFluidTerminal { + + public GuiFluidPortableCell(final InventoryPlayer inventoryPlayer, final IFluidPortableCell te) { + super(inventoryPlayer, te, new ContainerFluidPortableCell(inventoryPlayer, te)); + } + + @Override + protected void repositionSlot(final AppEngSlot s) { + s.yDisplayPosition = s.getY() + this.ySize - 78 - 5; + } + + @Override + protected int getMaxRows() { + return 3; + } +} diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidStorageBus.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidStorageBus.java index 43b43d69..cf87eb48 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidStorageBus.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidStorageBus.java @@ -80,7 +80,7 @@ public class GuiFluidStorageBus extends GuiUpgradeable { } else if (btn == this.clear) { FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns("StorageBus.Action", "Clear")); } else if (btn == this.priority) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.PRIORITY_PART)); + FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.PRIORITY)); } else if (btn == this.rwMode) { NetworkHandler.instance.sendToServer(new PacketConfigButton(this.rwMode.getSetting(), backwards)); } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidTerminal.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidTerminal.java index 1b0d98c5..a5f33150 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidTerminal.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidTerminal.java @@ -39,6 +39,14 @@ public class GuiFluidTerminal extends GuiFluidMonitor { this.showViewBtn = false; } + public GuiFluidTerminal( + final InventoryPlayer inventoryPlayer, final ITerminalHost te, final ContainerFluidMonitor c) { + super(inventoryPlayer, te, c); + this.container = c; + this.player = inventoryPlayer.player; + this.showViewBtn = false; + } + @Override protected void repositionSlot(final AppEngSlot s) { if (s.isPlayerSide()) { diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidMonitor.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidMonitor.java index 11e2fa42..40520d50 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidMonitor.java @@ -25,6 +25,7 @@ import appeng.util.item.AEItemStack; import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.base.FCContainerMonitor; import com.glodblock.github.common.item.ItemFluidDrop; +import com.glodblock.github.inventory.item.IFluidPortableCell; import com.glodblock.github.network.CPacketFluidUpdate; import com.glodblock.github.network.SPacketFluidUpdate; import com.glodblock.github.network.SPacketMEInventoryUpdate; @@ -58,7 +59,9 @@ public class ContainerFluidMonitor extends FCContainerMonitor { this.monitor = monitorable.getFluidInventory(); if (this.monitor != null) { this.monitor.addListener(this, null); - if (monitorable instanceof IPortableCell) { + if (monitorable instanceof IFluidPortableCell) { + this.setPowerSource((IEnergySource) monitorable); + } else if (monitorable instanceof IPortableCell) { this.setPowerSource((IEnergySource) monitorable); } else if (monitorable instanceof IMEChest) { this.setPowerSource((IEnergySource) monitorable); diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPortableCell.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPortableCell.java new file mode 100644 index 00000000..12da1443 --- /dev/null +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPortableCell.java @@ -0,0 +1,68 @@ +package com.glodblock.github.client.gui.container; + +import appeng.api.config.Actionable; +import appeng.api.config.PowerMultiplier; +import appeng.util.Platform; +import com.glodblock.github.inventory.item.IFluidPortableCell; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; + +public class ContainerFluidPortableCell extends ContainerFluidMonitor { + + private double powerMultiplier = 0.5; + private final IFluidPortableCell civ; + private int ticks = 0; + private final int slot; + + public ContainerFluidPortableCell(final InventoryPlayer ip, final IFluidPortableCell monitorable) { + super(ip, monitorable, false); + if (monitorable != null) { + final int slotIndex = monitorable.getInventorySlot(); + this.lockPlayerInventorySlot(slotIndex); + this.slot = slotIndex; + } else { + this.slot = -1; + this.lockPlayerInventorySlot(ip.currentItem); + } + this.civ = monitorable; + this.bindPlayerInventory(ip, 0, 0); + } + + @Override + public void detectAndSendChanges() { + final ItemStack currentItem = this.slot < 0 + ? this.getPlayerInv().getCurrentItem() + : this.getPlayerInv().getStackInSlot(this.slot); + if (this.civ != null) { + if (currentItem != this.civ.getItemStack()) { + if (currentItem != null) { + if (Platform.isSameItem(this.civ.getItemStack(), currentItem)) { + this.getPlayerInv() + .setInventorySlotContents(this.getPlayerInv().currentItem, this.civ.getItemStack()); + } else { + this.setValidContainer(false); + } + } else { + this.setValidContainer(false); + } + } + } else { + this.setValidContainer(false); + } + this.ticks++; + if (this.ticks > 10 && this.civ != null) { + this.civ.extractAEPower( + this.getPowerMultiplier() * this.ticks, Actionable.MODULATE, PowerMultiplier.CONFIG); + this.ticks = 0; + } + super.detectAndSendChanges(); + } + + private double getPowerMultiplier() { + return this.powerMultiplier; + } + + void setPowerMultiplier(final double powerMultiplier) { + this.powerMultiplier = powerMultiplier; + } +} diff --git a/src/main/java/com/glodblock/github/common/Config.java b/src/main/java/com/glodblock/github/common/Config.java index dc9db3bf..5d336f49 100644 --- a/src/main/java/com/glodblock/github/common/Config.java +++ b/src/main/java/com/glodblock/github/common/Config.java @@ -14,6 +14,7 @@ public class Config { public static boolean fluidIOBus; public static boolean removeRecipe; public static boolean blacklistEssentiaGas; + public static double portableCellBattery; public static void run() { loadCategory(); @@ -43,6 +44,8 @@ public class Config { "Fluid Craft for AE2", true, "Blacklist Essentia Gas from Thaumic Energistics, so they won't be stored in Fluid Storage Cells."); + portableCellBattery = Config.get("Fluid Craft for AE2", "Portable Fluid Cell Battery Capacity", 20000D) + .getDouble(); if (Config.hasChanged()) Config.save(); } diff --git a/src/main/java/com/glodblock/github/common/block/BlockFluidDiscretizer.java b/src/main/java/com/glodblock/github/common/block/BlockFluidDiscretizer.java index d56180ce..0093c25d 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockFluidDiscretizer.java +++ b/src/main/java/com/glodblock/github/common/block/BlockFluidDiscretizer.java @@ -6,6 +6,7 @@ import com.glodblock.github.common.item.FCBaseItemBlock; import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.common.tile.TileFluidDiscretizer; import com.glodblock.github.util.NameConst; +import com.glodblock.github.util.RenderUtil; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -40,7 +41,7 @@ public class BlockFluidDiscretizer extends FCBaseBlock { final boolean advancedToolTips) { if (isShiftKeyDown()) { - toolTip.addAll(this.listFormattedStringToWidth(NameConst.i18n(NameConst.TT_FLUID_DISCRETIZER_DESC))); + toolTip.addAll(RenderUtil.listFormattedStringToWidth(NameConst.i18n(NameConst.TT_FLUID_DISCRETIZER_DESC))); } else { toolTip.add(NameConst.i18n(NameConst.TT_SHIFT_FOR_MORE)); } diff --git a/src/main/java/com/glodblock/github/common/block/BlockFluidPacketDecoder.java b/src/main/java/com/glodblock/github/common/block/BlockFluidPacketDecoder.java index 4b972429..696382f4 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockFluidPacketDecoder.java +++ b/src/main/java/com/glodblock/github/common/block/BlockFluidPacketDecoder.java @@ -9,6 +9,7 @@ import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.NameConst; +import com.glodblock.github.util.RenderUtil; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -65,7 +66,8 @@ public class BlockFluidPacketDecoder extends FCBaseBlock { final List toolTip, final boolean advancedToolTips) { if (isShiftKeyDown()) { - toolTip.addAll(this.listFormattedStringToWidth(NameConst.i18n(NameConst.TT_FLUID_PACKET_DECODER_DESC))); + toolTip.addAll( + RenderUtil.listFormattedStringToWidth(NameConst.i18n(NameConst.TT_FLUID_PACKET_DECODER_DESC))); } else { toolTip.add(NameConst.i18n(NameConst.TT_SHIFT_FOR_MORE)); } diff --git a/src/main/java/com/glodblock/github/common/block/BlockLevelMaintainer.java b/src/main/java/com/glodblock/github/common/block/BlockLevelMaintainer.java index b668f3ae..0e43f3d1 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockLevelMaintainer.java +++ b/src/main/java/com/glodblock/github/common/block/BlockLevelMaintainer.java @@ -13,6 +13,7 @@ import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.NameConst; +import com.glodblock.github.util.RenderUtil; import com.glodblock.github.util.Util; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; @@ -83,7 +84,7 @@ public class BlockLevelMaintainer extends FCBaseBlock { if (isShiftKeyDown() && isCtrlKeyDown()) { toolTip.add(NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_WHO_AM_I)); } else if (isShiftKeyDown()) { - toolTip.addAll(this.listFormattedStringToWidth(NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_DESC))); + toolTip.addAll(RenderUtil.listFormattedStringToWidth(NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_DESC))); } else { toolTip.add(NameConst.i18n(NameConst.TT_SHIFT_FOR_MORE)); } diff --git a/src/main/java/com/glodblock/github/common/block/FCBaseBlock.java b/src/main/java/com/glodblock/github/common/block/FCBaseBlock.java index e5dd49f0..06fdaa8a 100644 --- a/src/main/java/com/glodblock/github/common/block/FCBaseBlock.java +++ b/src/main/java/com/glodblock/github/common/block/FCBaseBlock.java @@ -9,7 +9,6 @@ import cpw.mods.fml.relauncher.SideOnly; import java.util.EnumSet; import java.util.List; import net.minecraft.block.material.Material; -import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -47,11 +46,6 @@ public abstract class FCBaseBlock extends AEBaseTileBlock implements IRegister toolTip, final boolean advancedToolTips) {} - @SuppressWarnings("unchecked") - protected final List listFormattedStringToWidth(String str) { - return Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(str, 150); - } - public void addCheckedInformation( ItemStack itemStack, EntityPlayer player, List toolTip, boolean advancedToolTips) { this.addInformation(itemStack, player, toolTip, advancedToolTips); diff --git a/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java b/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java index 9ef3b0d9..1698e96b 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java +++ b/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java @@ -260,14 +260,6 @@ public class ItemBasicFluidStorageCell extends AEBaseItem Platform.openNbtData(is).setString("FuzzyMode", fzMode.name()); } - public String getOreFilter(ItemStack is) { - return Platform.openNbtData(is).getString("OreFilter"); - } - - public void setOreFilter(ItemStack is, String filter) { - Platform.openNbtData(is).setString("OreFilter", filter); - } - @Override public ItemStack onItemRightClick(final ItemStack stack, final World world, final EntityPlayer player) { this.disassembleDrive(stack, world, player); diff --git a/src/main/java/com/glodblock/github/common/item/ItemPortableFluidCell.java b/src/main/java/com/glodblock/github/common/item/ItemPortableFluidCell.java new file mode 100644 index 00000000..fadc2bba --- /dev/null +++ b/src/main/java/com/glodblock/github/common/item/ItemPortableFluidCell.java @@ -0,0 +1,183 @@ +package com.glodblock.github.common.item; + +import appeng.api.AEApi; +import appeng.api.config.FuzzyMode; +import appeng.api.storage.IMEInventoryHandler; +import appeng.api.storage.StorageChannel; +import appeng.api.storage.data.IAEFluidStack; +import appeng.core.features.AEFeature; +import appeng.core.localization.GuiText; +import appeng.items.contents.CellConfig; +import appeng.items.contents.CellUpgrades; +import appeng.items.tools.powered.powersink.AEBasePoweredItem; +import appeng.util.Platform; +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.Config; +import com.glodblock.github.common.storage.IFluidCellInventory; +import com.glodblock.github.common.storage.IFluidCellInventoryHandler; +import com.glodblock.github.common.storage.IStorageFluidCell; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.inventory.InventoryHandler; +import com.glodblock.github.inventory.gui.GuiType; +import com.glodblock.github.inventory.item.IItemInventory; +import com.glodblock.github.inventory.item.PortableFluidCellInventory; +import com.glodblock.github.loader.IRegister; +import com.glodblock.github.util.BlockPos; +import com.glodblock.github.util.ModAndClassUtil; +import com.glodblock.github.util.NameConst; +import com.glodblock.github.util.RenderUtil; +import com.google.common.base.Optional; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import java.util.EnumSet; +import java.util.List; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class ItemPortableFluidCell extends AEBasePoweredItem + implements IStorageFluidCell, IItemInventory, IRegister { + + public ItemPortableFluidCell() { + super(Config.portableCellBattery, Optional.absent()); + setUnlocalizedName(NameConst.ITEM_FLUID_PORTABLE_CELL); + setTextureName(FluidCraft.resource(NameConst.ITEM_FLUID_PORTABLE_CELL).toString()); + this.setFeature(EnumSet.of(AEFeature.PortableCell, AEFeature.StorageCells, AEFeature.PoweredTools)); + } + + @Override + public ItemStack onItemRightClick(final ItemStack item, final World w, final EntityPlayer player) { + InventoryHandler.openGui( + player, + w, + new BlockPos(player.inventory.currentItem, 0, 0), + ForgeDirection.UNKNOWN, + GuiType.PORTABLE_FLUID_CELL); + return item; + } + + @SideOnly(Side.CLIENT) + @Override + public boolean isFull3D() { + return false; + } + + @SideOnly(Side.CLIENT) + @Override + public void addCheckedInformation( + final ItemStack stack, final EntityPlayer player, final List lines, final boolean displayMoreInfo) { + super.addCheckedInformation(stack, player, lines, displayMoreInfo); + final IMEInventoryHandler inventory = + AEApi.instance().registries().cell().getCellInventory(stack, null, StorageChannel.FLUIDS); + if (inventory instanceof IFluidCellInventoryHandler) { + final IFluidCellInventoryHandler handler = (IFluidCellInventoryHandler) inventory; + final IFluidCellInventory cellInventory = handler.getCellInv(); + if (cellInventory != null) { + lines.add(EnumChatFormatting.WHITE + String.valueOf(cellInventory.getUsedBytes()) + + EnumChatFormatting.GRAY + " " + GuiText.Of.getLocal() + " " + + EnumChatFormatting.DARK_GREEN + cellInventory.getTotalBytes() + " " + + EnumChatFormatting.GRAY + GuiText.BytesUsed.getLocal()); + lines.add(EnumChatFormatting.WHITE + String.valueOf(cellInventory.getStoredFluidTypes()) + + EnumChatFormatting.GRAY + " " + GuiText.Of.getLocal() + " " + + EnumChatFormatting.DARK_GREEN + cellInventory.getTotalFluidTypes() + " " + + EnumChatFormatting.GRAY + GuiText.Types.getLocal()); + } + } + if (GuiScreen.isShiftKeyDown()) { + lines.addAll(RenderUtil.listFormattedStringToWidth( + StatCollector.translateToLocalFormatted(NameConst.TT_CELL_PORTABLE))); + } else { + lines.add(StatCollector.translateToLocal(NameConst.TT_SHIFT_FOR_MORE)); + } + } + + @Override + public int getBytes(final ItemStack cellItem) { + return 256; + } + + @Override + public int getBytesPerType(final ItemStack cellItem) { + return 8; + } + + @Override + public int getTotalTypes(final ItemStack cellItem) { + return 5; + } + + @Override + public boolean isBlackListed(ItemStack cellItem, IAEFluidStack requestedAddition) { + if (Config.blacklistEssentiaGas && ModAndClassUtil.ThE && requestedAddition != null) { + return ModAndClassUtil.essentiaGas.isInstance(requestedAddition.getFluid()); + } + return false; + } + + @Override + public boolean storableInStorageCell() { + return false; + } + + @Override + public boolean isStorageCell(final ItemStack i) { + return true; + } + + @Override + public double getIdleDrain() { + return 0.5; + } + + @Override + public boolean isEditable(final ItemStack is) { + return true; + } + + @Override + public IInventory getUpgradesInventory(final ItemStack is) { + return new CellUpgrades(is, 0); + } + + @Override + public IInventory getConfigInventory(final ItemStack is) { + return new CellConfig(is); + } + + @Override + public FuzzyMode getFuzzyMode(final ItemStack is) { + final String fz = Platform.openNbtData(is).getString("FuzzyMode"); + try { + return FuzzyMode.valueOf(fz); + } catch (final Throwable t) { + return FuzzyMode.IGNORE_ALL; + } + } + + @Override + public void setFuzzyMode(final ItemStack is, final FuzzyMode fzMode) { + Platform.openNbtData(is).setString("FuzzyMode", fzMode.name()); + } + + @Override + public ItemPortableFluidCell register() { + GameRegistry.registerItem(this, NameConst.ITEM_FLUID_PORTABLE_CELL, FluidCraft.MODID); + setCreativeTab(FluidCraftingTabs.INSTANCE); + return this; + } + + @Override + public Object getInventory(ItemStack stack, World world, int x, int y, int z) { + return new PortableFluidCellInventory(stack, x); + } + + public ItemStack stack() { + return new ItemStack(this, 1); + } +} diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidInterface.java b/src/main/java/com/glodblock/github/common/parts/PartFluidInterface.java index a54f4fdd..ef0d38eb 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidInterface.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidInterface.java @@ -268,7 +268,7 @@ public class PartFluidInterface extends PartInterface implements IDualHost { this.getHost().getTile().getWorldObj(), new BlockPos(this.getHost().getTile()), Objects.requireNonNull(this.getSide()), - GuiType.DUAL_INTERFACE_PART); + GuiType.DUAL_INTERFACE); } return true; } diff --git a/src/main/java/com/glodblock/github/common/storage/FluidCellHandler.java b/src/main/java/com/glodblock/github/common/storage/FluidCellHandler.java index 0c64c131..cdcbfe0a 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellHandler.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellHandler.java @@ -1,16 +1,15 @@ package com.glodblock.github.common.storage; import appeng.api.implementations.tiles.IChestOrDrive; -import appeng.api.implementations.tiles.IMEChest; -import appeng.api.networking.security.PlayerSource; import appeng.api.storage.*; import appeng.client.texture.ExtraBlockTextures; -import com.glodblock.github.util.ModAndClassUtil; -import extracells.network.GuiHandler; +import com.glodblock.github.inventory.InventoryHandler; +import com.glodblock.github.inventory.gui.GuiType; +import com.glodblock.github.util.BlockPos; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; public class FluidCellHandler implements ICellHandler { @@ -52,17 +51,11 @@ public class FluidCellHandler implements ICellHandler { final IMEInventoryHandler inv, final ItemStack is, final StorageChannel chan) { - if (ModAndClassUtil.EC2) { - if (chan == StorageChannel.FLUIDS) { - IStorageMonitorable monitorable = null; - if (chest != null) { - monitorable = - ((IMEChest) chest).getMonitorable(ForgeDirection.UNKNOWN, new PlayerSource(player, chest)); - } - if (monitorable != null) { - GuiHandler.launchGui( - GuiHandler.getGuiId(0), player, new Object[] {monitorable.getFluidInventory()}); - } + if (chan == StorageChannel.FLUIDS) { + if (chest instanceof TileEntity) { + TileEntity te = (TileEntity) chest; + InventoryHandler.openGui( + player, te.getWorldObj(), new BlockPos(te), chest.getUp(), GuiType.FLUID_TERMINAL); } } } diff --git a/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java b/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java index efd7b2ee..7ef17aa3 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java @@ -31,7 +31,7 @@ public class FluidCellInventory implements IFluidCellInventory { private static String[] fluidSlotCount; private final ItemStack cellItem; private final ISaveProvider container; - private final int MAX_TYPE = 1; + private final int MAX_TYPE = 63; private long storedFluidCount; private short storedFluids; private IItemList cellFluids; @@ -137,7 +137,7 @@ public class FluidCellInventory implements IFluidCellInventory { @Override public long getTotalFluidTypes() { - return MAX_TYPE; + return this.cellType.getTotalTypes(this.cellItem); } @Override diff --git a/src/main/java/com/glodblock/github/inventory/gui/GuiType.java b/src/main/java/com/glodblock/github/inventory/gui/GuiType.java index 196c7735..d700f1d7 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/GuiType.java +++ b/src/main/java/com/glodblock/github/inventory/gui/GuiType.java @@ -3,17 +3,16 @@ package com.glodblock.github.inventory.gui; import appeng.api.storage.ITerminalHost; import appeng.container.implementations.ContainerCraftAmount; import appeng.container.implementations.ContainerCraftingStatus; -import appeng.container.implementations.ContainerInterface; import appeng.container.implementations.ContainerPriority; import appeng.helpers.IPriorityHost; import com.glodblock.github.client.gui.*; import com.glodblock.github.client.gui.container.*; -import com.glodblock.github.common.parts.PartFluidInterface; import com.glodblock.github.common.parts.PartFluidLevelEmitter; import com.glodblock.github.common.parts.PartFluidStorageBus; import com.glodblock.github.common.parts.base.FCPart; import com.glodblock.github.common.parts.base.FCSharedFluidBus; import com.glodblock.github.common.tile.*; +import com.glodblock.github.inventory.item.IFluidPortableCell; import com.google.common.collect.ImmutableList; import java.util.List; import javax.annotation.Nullable; @@ -31,6 +30,7 @@ public enum GuiType { return new GuiFluidLevelEmitter(player.inventory, inv); } }), + LEVEL_MAINTAINER(new TileGuiFactory(TileLevelMaintainer.class) { @Override protected Object createServerGui(EntityPlayer player, TileLevelMaintainer inv) { @@ -42,6 +42,7 @@ public enum GuiType { return new GuiLevelMaintainer(player.inventory, inv); } }), + OC_PATTERN_EDITOR(new TileGuiFactory(TileOCPatternEditor.class) { @Override protected Object createServerGui(EntityPlayer player, TileOCPatternEditor inv) { @@ -54,31 +55,7 @@ public enum GuiType { } }), - DUAL_INTERFACE_PART(new PartGuiFactory(PartFluidInterface.class) { - @Override - protected Object createServerGui(EntityPlayer player, PartFluidInterface inv) { - return new ContainerInterface(player.inventory, inv); - } - - @Override - protected Object createClientGui(EntityPlayer player, PartFluidInterface inv) { - return new GuiDualInterface(player.inventory, inv); - } - }), - - DUAL_INTERFACE_FLUID_PART(new PartGuiFactory(PartFluidInterface.class) { - @Override - protected Object createServerGui(EntityPlayer player, PartFluidInterface inv) { - return new ContainerFluidInterface(player.inventory, inv); - } - - @Override - protected Object createClientGui(EntityPlayer player, PartFluidInterface inv) { - return new GuiFluidInterface(player.inventory, inv); - } - }), - - DUAL_INTERFACE(new TileGuiFactory(TileFluidInterface.class) { + DUAL_INTERFACE(new TileOrPartGuiFactory(TileFluidInterface.class) { @Override protected Object createServerGui(EntityPlayer player, TileFluidInterface inv) { return new ContainerDualInterface(player.inventory, inv); @@ -90,7 +67,7 @@ public enum GuiType { } }), - DUAL_INTERFACE_FLUID(new TileGuiFactory(TileFluidInterface.class) { + DUAL_INTERFACE_FLUID(new TileOrPartGuiFactory(TileFluidInterface.class) { @Override protected Object createServerGui(EntityPlayer player, TileFluidInterface inv) { return new ContainerFluidInterface(player.inventory, inv); @@ -102,19 +79,7 @@ public enum GuiType { } }), - PRIORITY_PART(new PartGuiFactory(IPriorityHost.class) { - @Override - protected Object createServerGui(EntityPlayer player, IPriorityHost inv) { - return new ContainerPriority(player.inventory, inv); - } - - @Override - protected Object createClientGui(EntityPlayer player, IPriorityHost inv) { - return new GuiFCPriority(player.inventory, inv); - } - }), - - PRIORITY_TILE(new TileGuiFactory(IPriorityHost.class) { + PRIORITY(new TileOrPartGuiFactory(IPriorityHost.class) { @Override protected Object createServerGui(EntityPlayer player, IPriorityHost inv) { return new ContainerPriority(player.inventory, inv); @@ -186,7 +151,7 @@ public enum GuiType { } }), - FLUID_TERMINAL(new PartGuiFactory(ITerminalHost.class) { + FLUID_TERMINAL(new TileOrPartGuiFactory(ITerminalHost.class) { @Override protected Object createServerGui(EntityPlayer player, ITerminalHost inv) { return new ContainerFluidMonitor(player.inventory, inv); @@ -198,6 +163,18 @@ public enum GuiType { } }), + PORTABLE_FLUID_CELL(new ItemGuiFactory(IFluidPortableCell.class) { + @Override + protected Object createServerGui(EntityPlayer player, IFluidPortableCell inv) { + return new ContainerFluidPortableCell(player.inventory, inv); + } + + @Override + protected Object createClientGui(EntityPlayer player, IFluidPortableCell inv) { + return new GuiFluidPortableCell(player.inventory, inv); + } + }), + FLUID_PATTERN_TERMINAL(new PartGuiFactory(ITerminalHost.class) { @Override protected Object createServerGui(EntityPlayer player, ITerminalHost inv) { diff --git a/src/main/java/com/glodblock/github/inventory/gui/ItemGuiFactory.java b/src/main/java/com/glodblock/github/inventory/gui/ItemGuiFactory.java new file mode 100644 index 00000000..5d80a07e --- /dev/null +++ b/src/main/java/com/glodblock/github/inventory/gui/ItemGuiFactory.java @@ -0,0 +1,65 @@ +package com.glodblock.github.inventory.gui; + +import appeng.container.AEBaseContainer; +import appeng.container.ContainerOpenContext; +import com.glodblock.github.inventory.item.IItemInventory; +import javax.annotation.Nullable; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public abstract class ItemGuiFactory implements IGuiFactory { + + protected final Class invClass; + + ItemGuiFactory(Class invClass) { + this.invClass = invClass; + } + + @Nullable + protected T getInventory(Object inv) { + return invClass.isInstance(inv) ? invClass.cast(inv) : null; + } + + @Nullable + @Override + public Object createServerGui(EntityPlayer player, World world, int x, int y, int z, ForgeDirection face) { + ItemStack item = player.getHeldItem(); + if (item == null || !(item.getItem() instanceof IItemInventory)) { + return null; + } + T inv = getInventory(((IItemInventory) item.getItem()).getInventory(item, world, x, y, z)); + if (inv == null) { + return null; + } + Object gui = createServerGui(player, inv); + if (gui instanceof AEBaseContainer) { + ContainerOpenContext ctx = new ContainerOpenContext(inv); + ctx.setWorld(world); + ctx.setX(x); + ctx.setY(y); + ctx.setZ(z); + ctx.setSide(face); + ((AEBaseContainer) gui).setOpenContext(ctx); + } + return gui; + } + + @Nullable + protected abstract Object createServerGui(EntityPlayer player, T inv); + + @Nullable + @Override + public Object createClientGui(EntityPlayer player, World world, int x, int y, int z, ForgeDirection face) { + ItemStack item = player.getHeldItem(); + if (item == null || !(item.getItem() instanceof IItemInventory)) { + return null; + } + T inv = getInventory(((IItemInventory) item.getItem()).getInventory(item, world, x, y, z)); + return inv != null ? createClientGui(player, inv) : null; + } + + @Nullable + protected abstract Object createClientGui(EntityPlayer player, T inv); +} diff --git a/src/main/java/com/glodblock/github/inventory/gui/TileOrPartGuiFactory.java b/src/main/java/com/glodblock/github/inventory/gui/TileOrPartGuiFactory.java new file mode 100644 index 00000000..f0664a05 --- /dev/null +++ b/src/main/java/com/glodblock/github/inventory/gui/TileOrPartGuiFactory.java @@ -0,0 +1,26 @@ +package com.glodblock.github.inventory.gui; + +import appeng.api.parts.IPart; +import appeng.api.parts.IPartHost; +import javax.annotation.Nullable; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public abstract class TileOrPartGuiFactory extends TileGuiFactory { + + TileOrPartGuiFactory(Class invClass) { + super(invClass); + } + + @Nullable + @Override + protected T getInventory(TileEntity tile, ForgeDirection face) { + if (tile instanceof IPartHost) { + IPart part = ((IPartHost) tile).getPart(face); + if (invClass.isInstance(part)) { + return invClass.cast(part); + } + } + return super.getInventory(tile, face); + } +} diff --git a/src/main/java/com/glodblock/github/inventory/item/IFluidPortableCell.java b/src/main/java/com/glodblock/github/inventory/item/IFluidPortableCell.java new file mode 100644 index 00000000..df1f395f --- /dev/null +++ b/src/main/java/com/glodblock/github/inventory/item/IFluidPortableCell.java @@ -0,0 +1,8 @@ +package com.glodblock.github.inventory.item; + +import appeng.api.implementations.guiobjects.IGuiItemObject; +import appeng.api.networking.energy.IEnergySource; +import appeng.api.storage.ITerminalHost; +import appeng.container.interfaces.IInventorySlotAware; + +public interface IFluidPortableCell extends ITerminalHost, IInventorySlotAware, IEnergySource, IGuiItemObject {} diff --git a/src/main/java/com/glodblock/github/inventory/item/IItemInventory.java b/src/main/java/com/glodblock/github/inventory/item/IItemInventory.java new file mode 100644 index 00000000..e6b85ac4 --- /dev/null +++ b/src/main/java/com/glodblock/github/inventory/item/IItemInventory.java @@ -0,0 +1,9 @@ +package com.glodblock.github.inventory.item; + +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public interface IItemInventory { + + Object getInventory(ItemStack stack, World world, int x, int y, int z); +} diff --git a/src/main/java/com/glodblock/github/inventory/item/PortableFluidCellInventory.java b/src/main/java/com/glodblock/github/inventory/item/PortableFluidCellInventory.java new file mode 100644 index 00000000..b3150d0f --- /dev/null +++ b/src/main/java/com/glodblock/github/inventory/item/PortableFluidCellInventory.java @@ -0,0 +1,71 @@ +package com.glodblock.github.inventory.item; + +import appeng.api.config.*; +import appeng.api.implementations.items.IAEItemPowerStorage; +import appeng.api.storage.IMEMonitor; +import appeng.api.storage.MEMonitorHandler; +import appeng.api.storage.data.IAEFluidStack; +import appeng.api.storage.data.IAEItemStack; +import appeng.api.util.IConfigManager; +import appeng.util.ConfigManager; +import appeng.util.Platform; +import com.glodblock.github.common.storage.FluidCellInventory; +import java.util.Objects; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class PortableFluidCellInventory extends MEMonitorHandler implements IFluidPortableCell { + + private final ItemStack target; + private final IAEItemPowerStorage ips; + private final int inventorySlot; + + public PortableFluidCellInventory(final ItemStack is, final int slot) { + super(Objects.requireNonNull(FluidCellInventory.getCell(is, null))); + this.ips = (IAEItemPowerStorage) is.getItem(); + this.target = is; + this.inventorySlot = slot; + } + + @Override + public int getInventorySlot() { + return this.inventorySlot; + } + + @Override + public ItemStack getItemStack() { + return this.target; + } + + @Override + public double extractAEPower(double amt, final Actionable mode, final PowerMultiplier usePowerMultiplier) { + amt = usePowerMultiplier.multiply(amt); + if (mode == Actionable.SIMULATE) { + return usePowerMultiplier.divide(Math.min(amt, this.ips.getAECurrentPower(this.target))); + } + return usePowerMultiplier.divide(this.ips.extractAEPower(this.target, amt)); + } + + @Override + public IMEMonitor getItemInventory() { + return null; + } + + @Override + public IMEMonitor getFluidInventory() { + return this; + } + + @Override + public IConfigManager getConfigManager() { + final ConfigManager out = new ConfigManager((manager, settingName, newValue) -> { + final NBTTagCompound data = Platform.openNbtData(PortableFluidCellInventory.this.target); + manager.writeToNBT(data); + }); + out.registerSetting(Settings.SORT_BY, SortOrder.NAME); + out.registerSetting(Settings.VIEW_MODE, ViewItems.ALL); + out.registerSetting(Settings.SORT_DIRECTION, SortDir.ASCENDING); + out.readFromNBT((NBTTagCompound) Platform.openNbtData(this.target).copy()); + return out; + } +} diff --git a/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java b/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java index 5c7896f9..602874d2 100644 --- a/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java +++ b/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java @@ -29,6 +29,7 @@ public class ItemAndBlockHolder { public static ItemFluidLevelEmitter FLUID_LEVEL_EMITTER = new ItemFluidLevelEmitter().register(); public static ItemFluidStorageMonitor FLUID_STORAGE_MONITOR = new ItemFluidStorageMonitor().register(); public static ItemFluidConversionMonitor FLUID_CONVERSION_MONITOR = new ItemFluidConversionMonitor().register(); + public static ItemPortableFluidCell PORTABLE_FLUID_CELL = new ItemPortableFluidCell().register(); public static ItemFluidPacket PACKET = new ItemFluidPacket().register(); public static ItemBasicFluidStorageCell CELL1K = new ItemBasicFluidStorageCell(CellType.Cell1kPart, 1).register(); public static ItemBasicFluidStorageCell CELL4K = new ItemBasicFluidStorageCell(CellType.Cell4kPart, 4).register(); diff --git a/src/main/java/com/glodblock/github/util/NameConst.java b/src/main/java/com/glodblock/github/util/NameConst.java index 17270398..2e5599cb 100644 --- a/src/main/java/com/glodblock/github/util/NameConst.java +++ b/src/main/java/com/glodblock/github/util/NameConst.java @@ -31,6 +31,7 @@ public class NameConst { public static final String ITEM_PART_FLUID_LEVEL_EMITTER = "part_fluid_level_emitter"; public static final String ITEM_FLUID_PACKET = "fluid_packet"; public static final String ITEM_FLUID_STORAGE = "fluid_storage"; + public static final String ITEM_FLUID_PORTABLE_CELL = "portable_fluid_cell"; public static final String ITEM_FLUID_PART = "fluid_part"; public static final String TT_KEY = FluidCraft.MODID + ".tooltip."; @@ -66,6 +67,7 @@ public class NameConst { public static final String TT_LEVEL_MAINTAINER_EXPORT_DESC = TT_LEVEL_MAINTAINER + "export_desc"; public static final String TT_CELL_CONTENTS = TT_KEY + "cell_contents"; public static final String TT_CELL_EMPTY = TT_KEY + "cell_empty"; + public static final String TT_CELL_PORTABLE = TT_KEY + "cell_portable"; public static final String WAILA_KEY = FluidCraft.MODID + ".waila."; public static final String WAILA_ENABLE = WAILA_KEY + "enable"; diff --git a/src/main/java/com/glodblock/github/util/RenderUtil.java b/src/main/java/com/glodblock/github/util/RenderUtil.java index 14324486..e12d45ec 100644 --- a/src/main/java/com/glodblock/github/util/RenderUtil.java +++ b/src/main/java/com/glodblock/github/util/RenderUtil.java @@ -1,6 +1,7 @@ package com.glodblock.github.util; import appeng.api.storage.data.IAEFluidStack; +import java.util.List; import javax.annotation.Nullable; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; @@ -66,4 +67,9 @@ public final class RenderUtil { } } } + + @SuppressWarnings("unchecked") + public static List listFormattedStringToWidth(String str) { + return Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(str, 150); + } } diff --git a/src/main/resources/assets/ae2fc/lang/en_US.lang b/src/main/resources/assets/ae2fc/lang/en_US.lang index d6bee525..f763c4d9 100644 --- a/src/main/resources/assets/ae2fc/lang/en_US.lang +++ b/src/main/resources/assets/ae2fc/lang/en_US.lang @@ -10,6 +10,7 @@ item.part_fluid_storage_bus.name=ME Fluid Storage Bus item.part_fluid_level_emitter.name=ME Fluid Level Emitter item.part_fluid_storage_monitor.name=ME Fluid Storage Monitor item.part_fluid_conversion_monitor.name=ME Fluid Conversion Monitor +item.portable_fluid_cell.name=Portable Fluid Cell item.fluid_packet.name=Fluid Packet item.fluid_storage.1.name=%s1k%s ME Fluid Storage Cell item.fluid_storage.4.name=%s4k%s ME Fluid Storage Cell @@ -67,6 +68,7 @@ ae2fc.tooltip.level_maintainer.request_size.hint=The count defines how many item ae2fc.tooltip.cell_contents=Contains Fluid: ae2fc.tooltip.cell_empty=Cell is empty +ae2fc.tooltip.cell_portable=Right click to open its GUI. It works like a backpack, but you need to charge it before using. ae2fc.tooltip.fluid_terminal=uh So we don't need EC2 anymore? ae2fc.tooltip.invalid_fluid=Invalid fluid! ae2fc.tooltip.encode_pattern=Encode Patter diff --git a/src/main/resources/assets/ae2fc/textures/items/portable_fluid_cell.png b/src/main/resources/assets/ae2fc/textures/items/portable_fluid_cell.png new file mode 100644 index 0000000000000000000000000000000000000000..fd8d7017082cfd7843c49668d47fc994c1a7c7bb GIT binary patch literal 485 zcmVhoc!;|nVr%K&5GWuu_)fUZ8jtiyWsR^G%KyyL;}zhnx+=r^~kyo>Yb>&L4g_lOfBnXeVx-W b1OfO5))mzpG0$PQ00000NkvXXu0mjf#@5&K literal 0 HcmV?d00001 From d238a82451f9028467880325f7166dca06143048 Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Sat, 28 Jan 2023 23:45:39 +0800 Subject: [PATCH 07/10] portable cell recipe --- .../gui/container/ContainerDualInterface.java | 6 +++++- .../glodblock/github/inventory/gui/GuiType.java | 14 ++++++++------ .../com/glodblock/github/loader/RecipeLoader.java | 13 +++++++++++++ 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerDualInterface.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerDualInterface.java index 77baccaf..181381dd 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerDualInterface.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerDualInterface.java @@ -6,6 +6,7 @@ import appeng.api.util.IConfigManager; import appeng.container.guisync.GuiSync; import appeng.container.implementations.ContainerInterface; import appeng.helpers.IInterfaceHost; +import com.glodblock.github.common.tile.TileFluidInterface; import net.minecraft.entity.player.InventoryPlayer; public class ContainerDualInterface extends ContainerInterface { @@ -13,9 +14,12 @@ public class ContainerDualInterface extends ContainerInterface { @GuiSync(10) public SidelessMode sidelessMode; + private final boolean isTile; + public ContainerDualInterface(InventoryPlayer ip, IInterfaceHost te) { super(ip, te); this.sidelessMode = SidelessMode.SIDELESS; + this.isTile = te instanceof TileFluidInterface; } public SidelessMode getSidelessMode() { @@ -25,6 +29,6 @@ public class ContainerDualInterface extends ContainerInterface { @Override protected void loadSettingsFromHost(IConfigManager cm) { super.loadSettingsFromHost(cm); - this.sidelessMode = (SidelessMode) cm.getSetting(Settings.SIDELESS_MODE); + this.sidelessMode = this.isTile ? (SidelessMode) cm.getSetting(Settings.SIDELESS_MODE) : SidelessMode.SIDELESS; } } diff --git a/src/main/java/com/glodblock/github/inventory/gui/GuiType.java b/src/main/java/com/glodblock/github/inventory/gui/GuiType.java index d700f1d7..693bab1d 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/GuiType.java +++ b/src/main/java/com/glodblock/github/inventory/gui/GuiType.java @@ -4,6 +4,7 @@ import appeng.api.storage.ITerminalHost; import appeng.container.implementations.ContainerCraftAmount; import appeng.container.implementations.ContainerCraftingStatus; import appeng.container.implementations.ContainerPriority; +import appeng.helpers.IInterfaceHost; import appeng.helpers.IPriorityHost; import com.glodblock.github.client.gui.*; import com.glodblock.github.client.gui.container.*; @@ -12,6 +13,7 @@ import com.glodblock.github.common.parts.PartFluidStorageBus; import com.glodblock.github.common.parts.base.FCPart; import com.glodblock.github.common.parts.base.FCSharedFluidBus; import com.glodblock.github.common.tile.*; +import com.glodblock.github.inventory.IDualHost; import com.glodblock.github.inventory.item.IFluidPortableCell; import com.google.common.collect.ImmutableList; import java.util.List; @@ -55,26 +57,26 @@ public enum GuiType { } }), - DUAL_INTERFACE(new TileOrPartGuiFactory(TileFluidInterface.class) { + DUAL_INTERFACE(new TileOrPartGuiFactory(IInterfaceHost.class) { @Override - protected Object createServerGui(EntityPlayer player, TileFluidInterface inv) { + protected Object createServerGui(EntityPlayer player, IInterfaceHost inv) { return new ContainerDualInterface(player.inventory, inv); } @Override - protected Object createClientGui(EntityPlayer player, TileFluidInterface inv) { + protected Object createClientGui(EntityPlayer player, IInterfaceHost inv) { return new GuiDualInterface(player.inventory, inv); } }), - DUAL_INTERFACE_FLUID(new TileOrPartGuiFactory(TileFluidInterface.class) { + DUAL_INTERFACE_FLUID(new TileOrPartGuiFactory(IDualHost.class) { @Override - protected Object createServerGui(EntityPlayer player, TileFluidInterface inv) { + protected Object createServerGui(EntityPlayer player, IDualHost inv) { return new ContainerFluidInterface(player.inventory, inv); } @Override - protected Object createClientGui(EntityPlayer player, TileFluidInterface inv) { + protected Object createClientGui(EntityPlayer player, IDualHost inv) { return new GuiFluidInterface(player.inventory, inv); } }), diff --git a/src/main/java/com/glodblock/github/loader/RecipeLoader.java b/src/main/java/com/glodblock/github/loader/RecipeLoader.java index e0e01166..f23e4282 100644 --- a/src/main/java/com/glodblock/github/loader/RecipeLoader.java +++ b/src/main/java/com/glodblock/github/loader/RecipeLoader.java @@ -61,11 +61,24 @@ public class RecipeLoader implements Runnable { new ItemStack(GameRegistry.findItem("appliedenergistics2", "tile.BlockCraftingUnit"), 1, 1); public static final ItemStack AE2_PATTERN_CAPACITY_CARD = new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 54); + public static final ItemStack AE2_ME_CHEST = + GameRegistry.findItemStack("appliedenergistics2", "tile.BlockChest", 1); + public static final ItemStack AE2_ENERGY_CELL = + GameRegistry.findItemStack("appliedenergistics2", "tile.BlockEnergyCell", 1); public static final ItemStack BUCKET = new ItemStack(Items.bucket, 1); public static final ItemStack IRON_BAR = new ItemStack(Blocks.iron_bars, 1); @Override public void run() { + GameRegistry.addRecipe(new ShapedOreRecipe( + PORTABLE_FLUID_CELL.stack(), + "ABC", + 'A', + AE2_ME_CHEST, + 'B', + CellType.Cell1kPart.stack(1), + 'C', + AE2_ENERGY_CELL)); GameRegistry.addRecipe(new ShapedOreRecipe( INTERFACE.stack(), "IPI", From ab0b8f11d4974308eb619f1a0365deb8e9fa8e63 Mon Sep 17 00:00:00 2001 From: Jason Mitchell Date: Sat, 28 Jan 2023 17:43:08 -0800 Subject: [PATCH 08/10] [ci skip] Update buildscript to RetroFuturaGradle --- build.gradle | 764 ++++++++++++----------- dependencies.gradle | 2 +- gradle/wrapper/gradle-wrapper.jar | Bin 55616 -> 61608 bytes gradle/wrapper/gradle-wrapper.properties | 3 +- gradlew | 314 ++++++---- settings.gradle | 24 +- 6 files changed, 634 insertions(+), 473 deletions(-) diff --git a/build.gradle b/build.gradle index 2dc32c9f..b7756e80 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,4 @@ -//version: 1673027205 +//version: 1674943145 /* DO NOT CHANGE THIS FILE! Also, you may replace this file at any time if there is an update available. @@ -6,24 +6,27 @@ */ +import com.diffplug.blowdryer.Blowdryer import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar +import com.gtnewhorizons.retrofuturagradle.mcp.ReobfuscatedJar import com.matthewprenger.cursegradle.CurseArtifact import com.matthewprenger.cursegradle.CurseRelation import com.modrinth.minotaur.dependencies.ModDependency import com.modrinth.minotaur.dependencies.VersionDependency import org.gradle.internal.logging.text.StyledTextOutput.Style import org.gradle.internal.logging.text.StyledTextOutputFactory +import org.jetbrains.gradle.ext.* import java.nio.file.Files import java.nio.file.Paths import java.util.concurrent.TimeUnit import java.util.zip.ZipEntry -import java.util.zip.ZipInputStream import java.util.zip.ZipOutputStream buildscript { repositories { + mavenLocal() mavenCentral() maven { @@ -31,9 +34,10 @@ buildscript { url 'https://maven.minecraftforge.net' } maven { - // GTNH ForgeGradle and ASM Fork - name = "GTNH Maven" - url = "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" + // GTNH RetroFuturaGradle and ASM Fork + name "GTNH Maven" + url "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" + allowInsecureProtocol = true } maven { name 'sonatype' @@ -44,76 +48,41 @@ buildscript { url 'https://repo1.maven.org/maven2/' } } - dependencies { - //Overwrite the current ASM version to fix shading newer than java 8 applicatations. - classpath 'org.ow2.asm:asm-debug-all-custom:5.0.3' - classpath 'net.minecraftforge.gradle:ForgeGradle:1.2.13' - } } plugins { id 'java-library' - id 'idea' + id "org.jetbrains.gradle.plugin.idea-ext" version "1.1.7" id 'eclipse' id 'scala' id 'maven-publish' id 'org.jetbrains.kotlin.jvm' version '1.5.30' apply false id 'org.jetbrains.kotlin.kapt' version '1.5.30' apply false id 'com.google.devtools.ksp' version '1.5.30-1.0.0' apply false - id 'org.ajoberstar.grgit' version '4.1.1' - id 'com.github.johnrengelman.shadow' version '4.0.4' - id 'com.palantir.git-version' version '0.13.0' apply false - id 'de.undercouch.download' version '5.0.1' - id 'com.github.gmazzo.buildconfig' version '3.0.3' apply false + id 'org.ajoberstar.grgit' version '4.1.1' // 4.1.1 is the last jvm8 supporting version ,unused, available for addon.gradle + id 'com.github.johnrengelman.shadow' version '7.1.2' apply false + id 'com.palantir.git-version' version '0.13.0' apply false // 0.13.0 is the last jvm8 supporting version + id 'de.undercouch.download' version '5.3.0' + id 'com.github.gmazzo.buildconfig' version '3.1.0' apply false // Unused, available for addon.gradle id 'com.diffplug.spotless' version '6.7.2' apply false id 'com.modrinth.minotaur' version '2.+' apply false id 'com.matthewprenger.cursegradle' version '1.4.0' apply false + id 'com.gtnewhorizons.retrofuturagradle' version '1.0.16' } boolean settingsupdated = verifySettingsGradle() settingsupdated = verifyGitAttributes() || settingsupdated if (settingsupdated) throw new GradleException("Settings has been updated, please re-run task.") -dependencies { - implementation 'com.diffplug:blowdryer:1.6.0' -} - -apply plugin: 'com.diffplug.blowdryer' - if (project.file('.git/HEAD').isFile()) { apply plugin: 'com.palantir.git-version' } def out = services.get(StyledTextOutputFactory).create('an-output') -apply plugin: 'forge' - def projectJavaVersion = JavaLanguageVersion.of(8) -java { - toolchain { - languageVersion.set(projectJavaVersion) - } -} - -idea { - module { - inheritOutputDirs = true - downloadJavadoc = true - downloadSources = true - } -} - boolean disableSpotless = project.hasProperty("disableSpotless") ? project.disableSpotless.toBoolean() : false -if (!disableSpotless) { - apply plugin: 'com.diffplug.spotless' - apply from: Blowdryer.file('spotless.gradle') -} - -if (JavaVersion.current() != JavaVersion.VERSION_1_8) { - throw new GradleException("This project requires Java 8, but it's running on " + JavaVersion.current()) -} - checkPropertyExists("modName") checkPropertyExists("modId") checkPropertyExists("modGroup") @@ -121,10 +90,7 @@ checkPropertyExists("autoUpdateBuildScript") checkPropertyExists("minecraftVersion") checkPropertyExists("forgeVersion") checkPropertyExists("replaceGradleTokenInFile") -checkPropertyExists("gradleTokenModId") -checkPropertyExists("gradleTokenModName") checkPropertyExists("gradleTokenVersion") -checkPropertyExists("gradleTokenGroupName") checkPropertyExists("apiPackage") checkPropertyExists("accessTransformersFile") checkPropertyExists("usesMixins") @@ -135,6 +101,8 @@ checkPropertyExists("containsMixinsAndOrCoreModOnly") checkPropertyExists("usesShadowedDependencies") checkPropertyExists("developmentEnvironmentUserName") +propertyDefaultIfUnset("generateGradleTokenClass", "") +propertyDefaultIfUnset("includeWellKnownRepositories", true) propertyDefaultIfUnset("noPublishedSources", false) propertyDefaultIfUnset("usesMixinDebug", project.usesMixins) propertyDefaultIfUnset("forceEnableMixins", false) @@ -144,14 +112,82 @@ propertyDefaultIfUnset("modrinthProjectId", "") propertyDefaultIfUnset("modrinthRelations", "") propertyDefaultIfUnset("curseForgeProjectId", "") propertyDefaultIfUnset("curseForgeRelations", "") +propertyDefaultIfUnset("minimizeShadowedDependencies", true) +// Deprecated properties (kept for backwards compat) +propertyDefaultIfUnset("gradleTokenModId", "") +propertyDefaultIfUnset("gradleTokenModName", "") +propertyDefaultIfUnset("gradleTokenGroupName", "") + +propertyDefaultIfUnset("enableModernJavaSyntax", false) // On by default for new projects only +propertyDefaultIfUnset("enableGenericInjection", false) // On by default for new projects only + +project.extensions.add(Blowdryer, "Blowdryer", Blowdryer) // Make blowdryer available in "apply from:" scripts +if (!disableSpotless) { + apply plugin: 'com.diffplug.spotless' + apply from: Blowdryer.file('spotless.gradle') +} String javaSourceDir = "src/main/java/" String scalaSourceDir = "src/main/scala/" String kotlinSourceDir = "src/main/kotlin/" +if (usesShadowedDependencies.toBoolean()) { + apply plugin: "com.github.johnrengelman.shadow" +} -final String modGroupPath = modGroup.toString().replaceAll("\\.", "/") -final String apiPackagePath = apiPackage.toString().replaceAll("\\.", "/") +java { + toolchain { + if (enableModernJavaSyntax.toBoolean()) { + languageVersion.set(JavaLanguageVersion.of(17)) + } else { + languageVersion.set(projectJavaVersion) + } + vendor.set(JvmVendorSpec.ADOPTIUM) + } + if (!noPublishedSources) { + withSourcesJar() + } +} + +configurations { + create("runtimeOnlyNonPublishable") { + description = "Runtime only dependencies that are not published alongside the jar" + canBeConsumed = false + canBeResolved = false + } +} + +if (enableModernJavaSyntax.toBoolean()) { + dependencies { + annotationProcessor 'com.github.bsideup.jabel:jabel-javac-plugin:1.0.0' + compileOnly('com.github.bsideup.jabel:jabel-javac-plugin:1.0.0') { + transitive = false // We only care about the 1 annotation class + } + } + + tasks.withType(JavaCompile).configureEach { + if (it.name in ["compileMcLauncherJava", "compilePatchedMcJava"]) { + return + } + sourceCompatibility = 17 // for the IDE support + options.release.set(8) + + javaCompiler.set(javaToolchains.compilerFor { + languageVersion.set(JavaLanguageVersion.of(17)) + vendor.set(JvmVendorSpec.ADOPTIUM) + }) + } +} + +eclipse { + classpath { + downloadSources = true + downloadJavadoc = true + } +} + +final String modGroupPath = modGroup.toString().replace('.' as char, '/' as char) +final String apiPackagePath = apiPackage.toString().replace('.' as char, '/' as char) String targetPackageJava = javaSourceDir + modGroupPath String targetPackageScala = scalaSourceDir + modGroupPath @@ -174,6 +210,8 @@ if (accessTransformersFile) { if (!getFile(targetFile).exists()) { throw new GradleException("Could not resolve \"accessTransformersFile\"! Could not find " + targetFile) } + tasks.deobfuscateMergedJarToSrg.accessTransformerFiles.from(targetFile) + tasks.srgifyBinpatchedJar.accessTransformerFiles.from(targetFile) } if (usesMixins.toBoolean()) { @@ -212,7 +250,7 @@ if (coreModClass) { } } -configurations.all { +configurations.configureEach { resolutionStrategy.cacheChangingModulesFor(0, TimeUnit.SECONDS) // Make sure GregTech build won't time out @@ -243,7 +281,7 @@ catch (Exception ignored) { versionOverride = 'NO-GIT-TAG-SET' identifiedVersion = versionOverride } -version = minecraftVersion + '-' + identifiedVersion +version = identifiedVersion ext { modVersion = identifiedVersion } @@ -259,72 +297,112 @@ if (project.hasProperty("customArchiveBaseName") && customArchiveBaseName) { archivesBaseName = modId } -def arguments = [] -def jvmArguments = [] - -if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) { - arguments += [ - "--tweakClass org.spongepowered.asm.launch.MixinTweaker" - ] - if (usesMixinDebug.toBoolean()) { - jvmArguments += [ - "-Dmixin.debug.countInjections=true", - "-Dmixin.debug.verbose=true", - "-Dmixin.debug.export=true" - ] - } -} minecraft { - version = minecraftVersion + '-' + forgeVersion + '-' + minecraftVersion - runDir = 'run' - if (replaceGradleTokenInFile) { for (f in replaceGradleTokenInFile.split(',')) { - replaceIn f + tagReplacementFiles.add f } - if (gradleTokenModId) { - replace gradleTokenModId, modId - } - if (gradleTokenModName) { - replace gradleTokenModName, modName - } - if (gradleTokenVersion) { - replace gradleTokenVersion, modVersion - } - if (gradleTokenGroupName) { - replace gradleTokenGroupName, modGroup + } + if (gradleTokenModId) { + injectedTags.put gradleTokenModId, modId + } + if (gradleTokenModName) { + injectedTags.put gradleTokenModName, modName + } + if (gradleTokenVersion) { + injectedTags.put gradleTokenVersion, modVersion + } + if (gradleTokenGroupName) { + injectedTags.put gradleTokenGroupName, modGroup + } + if (enableGenericInjection.toBoolean()) { + injectMissingGenerics.set(true) + } + + // Enable assertions in the current mod + extraRunJvmArguments.add("-ea:${modGroup}") + + if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) { + extraTweakClasses.add("org.spongepowered.asm.launch.MixinTweaker") + + if (usesMixinDebug.toBoolean()) { + extraRunJvmArguments.addAll([ + "-Dmixin.debug.countInjections=true", + "-Dmixin.debug.verbose=true", + "-Dmixin.debug.export=true" + ]) } } - clientIntellijRun { - args(arguments) - jvmArgs(jvmArguments) + // Blowdryer is present in some old mod builds, do not propagate it further as a dependency + // IC2 has no reobf jars in its Maven + groupsToExcludeFromAutoReobfMapping.addAll(["com.diffplug", "com.diffplug.durian", "net.industrial-craft"]) +} - if (developmentEnvironmentUserName) { - args("--username", developmentEnvironmentUserName) +if (generateGradleTokenClass) { + tasks.injectTags.outputClassName.set(generateGradleTokenClass) +} + +// Custom reobf auto-mappings +configurations.configureEach { + dependencies.configureEach { dep -> + if (dep instanceof org.gradle.api.artifacts.ExternalModuleDependency) { + if (dep.group == "net.industrial-craft" && dep.name == "industrialcraft-2") { + // https://www.curseforge.com/minecraft/mc-mods/industrial-craft/files/2353971 + project.dependencies.reobfJarConfiguration("curse.maven:ic2-242638:2353971") + } } } - - serverIntellijRun { - args(arguments) - jvmArgs(jvmArguments) - } } if (file('addon.gradle').exists()) { apply from: 'addon.gradle' } +// Allow unsafe repos but warn +repositories.configureEach { repo -> + if (repo instanceof org.gradle.api.artifacts.repositories.UrlArtifactRepository) { + if (repo.getUrl().getScheme() == "http" && !repo.allowInsecureProtocol) { + logger.warn("Deprecated: Allowing insecure connections for repo '${repo.name}' - add 'allowInsecureProtocol = true'") + repo.allowInsecureProtocol = true + } + } +} + apply from: 'repositories.gradle' configurations { - // TODO: remove Compile after all uses are refactored to Implementation - for (config in [shadowImplementation, shadowCompile, shadeCompile]) { - compileClasspath.extendsFrom(config) - runtimeClasspath.extendsFrom(config) - testCompileClasspath.extendsFrom(config) - testRuntimeClasspath.extendsFrom(config) + for (config in [compileClasspath, runtimeClasspath, testCompileClasspath, testRuntimeClasspath]) { + config.extendsFrom(runtimeOnlyNonPublishable) + if (usesShadowedDependencies.toBoolean()) { + config.extendsFrom(shadowImplementation) + // TODO: remove Compile after all uses are refactored to Implementation + config.extendsFrom(shadeCompile) + config.extendsFrom(shadowCompile) + } + } + // A "bag-of-dependencies"-style configuration for backwards compatibility, gets put in "api" + create("compile") { + description = "Deprecated: use api or implementation instead, gets put in api" + canBeConsumed = false + canBeResolved = false + visible = false + } + create("testCompile") { + description = "Deprecated: use testImplementation instead" + canBeConsumed = false + canBeResolved = false + visible = false + } + api.extendsFrom(compile) + testImplementation.extendsFrom(testCompile) +} + +afterEvaluate { + if (!configurations.compile.allDependencies.empty || !configurations.testCompile.allDependencies.empty) { + logger.warn("This project uses deprecated `compile` dependencies, please migrate to using `api` and `implementation`") + logger.warn("For more details, see https://github.com/GTNewHorizons/ExampleMod1.7.10/blob/master/dependencies.gradle") } } @@ -332,12 +410,16 @@ repositories { maven { name 'Overmind forge repo mirror' url 'https://gregtech.overminddl1.com/' + mavenContent { + excludeGroup("net.minecraftforge") // missing the `universal` artefact + } + } + maven { + name = "GTNH Maven" + url = "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" + allowInsecureProtocol = true } if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) { - maven { - name = "GTNH Maven" - url = "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" - } if (usesMixinDebug.toBoolean()) { maven { name = "Fabric Maven" @@ -345,6 +427,35 @@ repositories { } } } + if (includeWellKnownRepositories.toBoolean()) { + maven { + name "CurseMaven" + url "https://cursemaven.com" + content { + includeGroup "curse.maven" + } + } + maven { + name = "ic2" + url = "https://maven.ic2.player.to/" + metadataSources { + mavenPom() + artifact() + } + } + maven { + name = "ic2-mirror" + url = "https://maven2.ic2.player.to/" + metadataSources { + mavenPom() + artifact() + } + } + maven { + name "MMD Maven" + url "https://maven.mcmoddev.com/" + } + } } dependencies { @@ -352,31 +463,34 @@ dependencies { annotationProcessor('org.ow2.asm:asm-debug-all:5.0.3') annotationProcessor('com.google.guava:guava:24.1.1-jre') annotationProcessor('com.google.code.gson:gson:2.8.6') - annotationProcessor('com.gtnewhorizon:gtnhmixins:2.1.3:processor') + annotationProcessor('com.gtnewhorizon:gtnhmixins:2.1.10:processor') if (usesMixinDebug.toBoolean()) { - runtimeClasspath('org.jetbrains:intellij-fernflower:1.2.1.16') - testRuntimeClasspath('org.jetbrains:intellij-fernflower:1.2.1.16') + runtimeOnlyNonPublishable('org.jetbrains:intellij-fernflower:1.2.1.16') } } if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) { - compile('com.gtnewhorizon:gtnhmixins:2.1.3') + implementation('com.gtnewhorizon:gtnhmixins:2.1.10') } } apply from: 'dependencies.gradle' def mixingConfigRefMap = 'mixins.' + modId + '.refmap.json' -def refMap = "${tasks.compileJava.temporaryDir}" + File.separator + mixingConfigRefMap -def mixinSrg = "${tasks.reobf.temporaryDir}" + File.separator + "mixins.srg" +def mixinTmpDir = buildDir.path + File.separator + 'tmp' + File.separator + 'mixins' +def refMap = "${mixinTmpDir}" + File.separator + mixingConfigRefMap +def mixinSrg = "${mixinTmpDir}" + File.separator + "mixins.srg" -task generateAssets { - if (usesMixins.toBoolean()) { +tasks.register('generateAssets') { + group = "GTNH Buildscript" + description = "Generates a mixin config file at /src/main/resources/mixins.modid.json if needed" + onlyIf { usesMixins.toBoolean() } + doLast { def mixinConfigFile = getFile("/src/main/resources/mixins." + modId + ".json") if (!mixinConfigFile.exists()) { def mixinPluginLine = "" - if(!mixinPlugin.isEmpty()) { + if (!mixinPlugin.isEmpty()) { // We might not have a mixin plugin if we're using early/late mixins - mixinPluginLine += """\n "plugin": "${modGroup}.${mixinPlugin}", """ + mixinPluginLine += """\n "plugin": "${modGroup}.${mixinPlugin}", """ } mixinConfigFile.text = """{ @@ -395,105 +509,37 @@ task generateAssets { } } -task relocateShadowJar(type: ConfigureShadowRelocation) { - target = tasks.shadowJar - prefix = modGroup + ".shadow" +if (usesMixins.toBoolean()) { + tasks.named("reobfJar", ReobfuscatedJar).configure { + extraSrgFiles.from(mixinSrg) + } } -shadowJar { - project.configurations.shadeCompile.each { dep -> - from(project.zipTree(dep)) { - exclude 'META-INF', 'META-INF/**' +if (usesMixins.toBoolean()) { + tasks.named("compileJava", JavaCompile).configure { + doFirst { + new File(mixinTmpDir).mkdirs() } - } - - manifest { - attributes(getManifestAttributes()) - } - - minimize() // This will only allow shading for actually used classes - configurations = [ - project.configurations.shadowImplementation, - project.configurations.shadowCompile - ] - dependsOn(relocateShadowJar) -} - -jar { - project.configurations.shadeCompile.each { dep -> - from(project.zipTree(dep)) { - exclude 'META-INF', 'META-INF/**' - } - } - - manifest { - attributes(getManifestAttributes()) - } - - if (usesShadowedDependencies.toBoolean()) { - dependsOn(shadowJar) - enabled = false - } -} - -reobf { - if (usesMixins.toBoolean()) { - addExtraSrgFile mixinSrg - } -} - -afterEvaluate { - if (usesMixins.toBoolean()) { - tasks.compileJava { - options.compilerArgs += [ - "-AreobfSrgFile=${tasks.reobf.srg}", - "-AoutSrgFile=${mixinSrg}", - "-AoutRefMapFile=${refMap}", - // Elan: from what I understand they are just some linter configs so you get some warning on how to properly code - "-XDenableSunApiLintControl", - "-XDignore.symbol.file" - ] - } - } -} - -runClient { - if (developmentEnvironmentUserName) { - arguments += [ - "--username", - developmentEnvironmentUserName + options.compilerArgs += [ + "-AreobfSrgFile=${tasks.reobfJar.srg.get().asFile}", + "-AoutSrgFile=${mixinSrg}", + "-AoutRefMapFile=${refMap}", + // Elan: from what I understand they are just some linter configs so you get some warning on how to properly code + "-XDenableSunApiLintControl", + "-XDignore.symbol.file" ] } - - args(arguments) - jvmArgs(jvmArguments) } -runServer { - args(arguments) - jvmArgs(jvmArguments) -} - -tasks.withType(JavaExec).configureEach { - javaLauncher.set( - javaToolchains.launcherFor { - languageVersion = projectJavaVersion - } - ) -} - -processResources { +tasks.named("processResources", ProcessResources).configure { // this will ensure that this task is redone when the versions change. inputs.property "version", project.version - inputs.property "mcversion", project.minecraft.version + inputs.property "mcversion", project.minecraft.mcVersion exclude("spotless.gradle") - // replace stuff in mcmod.info, nothing else - from(sourceSets.main.resources.srcDirs) { - include 'mcmod.info' - - // replace modVersion and minecraftVersion - expand "minecraftVersion": project.minecraft.version, + // replace stuff in mcmod.info, nothing else. replaces ${key} with value in text + filesMatching("mcmod.info") { + expand "minecraftVersion": project.minecraft.mcVersion, "modVersion": modVersion, "modId": modId, "modName": modName @@ -502,12 +548,6 @@ processResources { if (usesMixins.toBoolean()) { from refMap } - - // copy everything else that's not the mcmod.info - from(sourceSets.main.resources.srcDirs) { - exclude 'mcmod.info' - exclude 'spotless.gradle' - } } def getManifestAttributes() { @@ -534,65 +574,68 @@ def getManifestAttributes() { return manifestAttributes } -task sourcesJar(type: Jar) { - from(sourceSets.main.allSource) - from(file("$projectDir/LICENSE")) - getArchiveClassifier().set('sources') -} - -task shadowDevJar(type: ShadowJar) { - project.configurations.shadeCompile.each { dep -> - from(project.zipTree(dep)) { - exclude 'META-INF', 'META-INF/**' - } - } - - from sourceSets.main.output - getArchiveClassifier().set("dev") - +tasks.named("jar", Jar).configure { manifest { attributes(getManifestAttributes()) } - - minimize() // This will only allow shading for actually used classes - configurations = [ - project.configurations.shadowImplementation, - project.configurations.shadowCompile - ] } -task relocateShadowDevJar(type: ConfigureShadowRelocation) { - target = tasks.shadowDevJar - prefix = modGroup + ".shadow" -} - -task circularResolverJar(type: Jar) { - dependsOn(relocateShadowDevJar) - dependsOn(shadowDevJar) - enabled = false -} - -task devJar(type: Jar) { - project.configurations.shadeCompile.each { dep -> - from(project.zipTree(dep)) { - exclude 'META-INF', 'META-INF/**' +if (usesShadowedDependencies.toBoolean()) { + tasks.register('relocateShadowJar', ConfigureShadowRelocation) { + target = tasks.shadowJar + prefix = modGroup + ".shadow" + } + tasks.named("shadowJar", ShadowJar).configure { + manifest { + attributes(getManifestAttributes()) } + + if (minimizeShadowedDependencies.toBoolean()) { + minimize() // This will only allow shading for actually used classes + } + configurations = [ + project.configurations.shadowImplementation, + project.configurations.shadowCompile, + project.configurations.shadeCompile + ] + archiveClassifier.set('dev') + dependsOn(relocateShadowJar) } - - from sourceSets.main.output - getArchiveClassifier().set("dev") - - manifest { - attributes(getManifestAttributes()) - } - - if (usesShadowedDependencies.toBoolean()) { - dependsOn(circularResolverJar) + configurations.runtimeElements.outgoing.artifacts.clear() + configurations.apiElements.outgoing.artifacts.clear() + configurations.runtimeElements.outgoing.artifact(tasks.named("shadowJar", ShadowJar)) + configurations.apiElements.outgoing.artifact(tasks.named("shadowJar", ShadowJar)) + tasks.named("jar", Jar) { enabled = false + finalizedBy(tasks.shadowJar) + } + tasks.named("reobfJar", ReobfuscatedJar) { + inputJar.set(tasks.named("shadowJar", ShadowJar).flatMap({it.archiveFile})) + } + AdhocComponentWithVariants javaComponent = (AdhocComponentWithVariants) project.components.findByName("java") + javaComponent.withVariantsFromConfiguration(configurations.shadowRuntimeElements) { + skip() + } + for (runTask in ["runClient", "runServer"]) { + tasks.named(runTask).configure { + dependsOn("shadowJar") + } + } +} +ext.publishableDevJar = usesShadowedDependencies.toBoolean() ? tasks.shadowJar : tasks.jar +ext.publishableObfJar = tasks.reobfJar + +tasks.named('extractForgeUserdev', Copy).configure { efu -> + doLast { + // Fix CoFH-repackaged CCL not finding mappings + project.copy { + from(mcpTasks.userdevDir("conf")) + into(new File(project.buildDir, "unpacked/conf")) + } } } -task apiJar(type: Jar) { +tasks.register('apiJar', Jar) { from(sourceSets.main.allSource) { include modGroupPath + "/" + apiPackagePath + '/**' } @@ -610,18 +653,78 @@ task apiJar(type: Jar) { artifacts { if (!noPublishedSources) { - archives sourcesJar + archives tasks.named("sourcesJar") } - archives devJar if (apiPackage) { - archives apiJar + archives tasks.named("apiJar") } } -// The gradle metadata includes all of the additional deps that we disabled from POM generation (including forgeBin with no groupID), -// and isn't strictly needed with the POM so just disable it. -tasks.withType(GenerateModuleMetadata) { - enabled = false +idea { + module { + downloadJavadoc = true + downloadSources = true + } + project { + settings { + runConfigurations { + "1. Run Client"(Gradle) { + taskNames = ["runClient"] + } + "2. Run Server"(Gradle) { + taskNames = ["runServer"] + } + "3. Run Obfuscated Client"(Gradle) { + taskNames = ["runObfClient"] + } + "4. Run Obfuscated Server"(Gradle) { + taskNames = ["runObfServer"] + } + if (!disableSpotless) { + "5. Apply spotless"(Gradle) { + taskNames = ["spotlessApply"] + } + } + def coreModArgs = "" + if (coreModClass) { + coreModArgs = ' "-Dfml.coreMods.load=' + modGroup + '.' + coreModClass + '"' + } + "Run Client (IJ Native)"(Application) { + mainClass = "GradleStart" + moduleName = project.name + ".main" + afterEvaluate { + workingDirectory = tasks.runClient.workingDir.absolutePath + programParameters = tasks.runClient.calculateArgs(project).collect { '"' + it + '"' }.join(' ') + jvmArgs = tasks.runClient.calculateJvmArgs(project).collect { '"' + it + '"' }.join(' ') + + ' ' + tasks.runClient.systemProperties.collect { '"-D' + it.key + '=' + it.value.toString() + '"' }.join(' ') + + coreModArgs + } + } + "Run Server (IJ Native)"(Application) { + mainClass = "GradleStartServer" + moduleName = project.name + ".main" + afterEvaluate { + workingDirectory = tasks.runServer.workingDir.absolutePath + programParameters = tasks.runServer.calculateArgs(project).collect { '"' + it + '"' }.join(' ') + jvmArgs = tasks.runServer.calculateJvmArgs(project).collect { '"' + it + '"' }.join(' ') + + ' ' + tasks.runServer.systemProperties.collect { '"-D' + it.key + '=' + it.value.toString() + '"' }.join(' ') + + coreModArgs + } + } + } + compiler.javac { + afterEvaluate { + moduleJavacAdditionalOptions = [ + (project.name + ".main"): tasks.compileJava.options.compilerArgs.collect { '"' + it + '"' }.join(' ') + ] + } + } + } + } +} + +tasks.named("processIdeaSettings").configure { + dependsOn("injectTags") } // workaround variable hiding in pom processing @@ -629,51 +732,24 @@ def projectConfigs = project.configurations publishing { publications { - maven(MavenPublication) { + create("maven", MavenPublication) { from components.java - if (usesShadowedDependencies.toBoolean()) { - artifact source: shadowJar, classifier: "" - } - if (!noPublishedSources) { - artifact source: sourcesJar, classifier: "sources" - } - artifact source: usesShadowedDependencies.toBoolean() ? shadowDevJar : devJar, classifier: "dev" + if (apiPackage) { - artifact source: apiJar, classifier: "api" + artifact apiJar } groupId = System.getenv("ARTIFACT_GROUP_ID") ?: "com.github.GTNewHorizons" artifactId = System.getenv("ARTIFACT_ID") ?: project.name // Using the identified version, not project.version as it has the prepended 1.7.10 version = System.getenv("RELEASE_VERSION") ?: identifiedVersion - - // remove extra garbage from minecraft and minecraftDeps configuration - pom.withXml { - def badArtifacts = [:].withDefault { [] as Set } - for (configuration in [ - projectConfigs.minecraft, - projectConfigs.minecraftDeps - ]) { - for (dependency in configuration.allDependencies) { - badArtifacts[dependency.group == null ? "" : dependency.group] += dependency.name - } - } - // example for specifying extra stuff to ignore - // badArtifacts["org.example.group"] += "artifactName" - - Node pomNode = asNode() - pomNode.dependencies.'*'.findAll() { - badArtifacts[it.groupId.text()].contains(it.artifactId.text()) - }.each() { - it.parent().remove(it) - } - } } } repositories { maven { url = "http://jenkins.usrv.eu:8081/nexus/content/repositories/releases" + allowInsecureProtocol = true credentials { username = System.getenv("MAVEN_USER") ?: "NONE" password = System.getenv("MAVEN_PASSWORD") ?: "NONE" @@ -693,7 +769,7 @@ if (modrinthProjectId.size() != 0 && System.getenv("MODRINTH_TOKEN") != null) { versionNumber = identifiedVersion versionType = identifiedVersion.endsWith("-pre") ? "beta" : "release" changelog = changelogFile.exists() ? changelogFile.getText("UTF-8") : "" - uploadFile = jar + uploadFile = publishableObfJar additionalFiles = getSecondaryArtifacts() gameVersions = [minecraftVersion] loaders = ["forge"] @@ -734,7 +810,7 @@ if (curseForgeProjectId.size() != 0 && System.getenv("CURSEFORGE_TOKEN") != null releaseType = identifiedVersion.endsWith("-pre") ? "beta" : "release" addGameVersion minecraftVersion addGameVersion "Forge" - mainArtifact jar + mainArtifact publishableObfJar for (artifact in getSecondaryArtifacts()) addArtifact artifact } @@ -762,7 +838,7 @@ if (curseForgeProjectId.size() != 0 && System.getenv("CURSEFORGE_TOKEN") != null tasks.publish.dependsOn(tasks.curseforge) } -def addModrinthDep(scope, type, name) { +def addModrinthDep(String scope, String type, String name) { com.modrinth.minotaur.dependencies.Dependency dep; if (!(scope in ["required", "optional", "incompatible", "embedded"])) { throw new Exception("Invalid modrinth dependency scope: " + scope) @@ -780,7 +856,7 @@ def addModrinthDep(scope, type, name) { project.modrinth.dependencies.add(dep) } -def addCurseForgeRelation(type, name) { +def addCurseForgeRelation(String type, String name) { if (!(type in ["requiredDependency", "embeddedLibrary", "optionalDependency", "tool", "incompatible"])) { throw new Exception("Invalid CurseForge relation type: " + type) } @@ -790,17 +866,20 @@ def addCurseForgeRelation(type, name) { } // Updating -task updateBuildScript { +tasks.register('updateBuildScript') { + group = 'GTNH Buildscript' + description = 'Updates the build script to the latest version' + doLast { - if (performBuildScriptUpdate(projectDir.toString())) return + if (performBuildScriptUpdate()) return print("Build script already up-to-date!") } } -if (!project.getGradle().startParameter.isOffline() && isNewBuildScriptVersionAvailable(projectDir.toString())) { +if (!project.getGradle().startParameter.isOffline() && !Boolean.getBoolean('DISABLE_BUILDSCRIPT_UPDATE_CHECK') && isNewBuildScriptVersionAvailable()) { if (autoUpdateBuildScript.toBoolean()) { - performBuildScriptUpdate(projectDir.toString()) + performBuildScriptUpdate() } else { out.style(Style.SuccessHeader).println("Build script update available! Run 'gradle updateBuildScript'") } @@ -843,10 +922,11 @@ boolean verifySettingsGradle() { return false } -boolean performBuildScriptUpdate(String projectDir) { - if (isNewBuildScriptVersionAvailable(projectDir)) { +boolean performBuildScriptUpdate() { + if (isNewBuildScriptVersionAvailable()) { def buildscriptFile = getFile("build.gradle") availableBuildScriptUrl().withInputStream { i -> buildscriptFile.withOutputStream { it << i } } + def out = services.get(StyledTextOutputFactory).create('buildscript-update-output') out.style(Style.Success).print("Build script updated. Please REIMPORT the project or RESTART your IDE!") boolean settingsupdated = verifySettingsGradle() settingsupdated = verifyGitAttributes() || settingsupdated @@ -857,7 +937,7 @@ boolean performBuildScriptUpdate(String projectDir) { return false } -boolean isNewBuildScriptVersionAvailable(String projectDir) { +boolean isNewBuildScriptVersionAvailable() { Map parameters = ["connectTimeout": 2000, "readTimeout": 2000] String currentBuildScript = getFile("build.gradle").getText() @@ -877,15 +957,12 @@ static String getVersionHash(String buildScriptContent) { return "" } -configure(updateBuildScript) { - group = 'forgegradle' - description = 'Updates the build script to the latest version' -} - // Parameter Deobfuscation -task deobfParams { - doLast { +tasks.register('deobfParams') { + group = 'GTNH Buildscript' + description = 'Rename all obfuscated parameter names inherited from Minecraft classes' + doLast { // TODO String mcpDir = "$project.gradle.gradleUserHomeDir/caches/minecraft/de/oceanlabs/mcp/mcp_$channel/$mappingsVersion" String mcpZIP = "$mcpDir/mcp_$channel-$mappingsVersion-${minecraftVersion}.zip" @@ -899,7 +976,10 @@ task deobfParams { if (!file(paramsCSV).exists()) { println("Extracting MCP archive ...") - unzip(mcpZIP, mcpDir) + copy { + from(zipTree(mcpZIP)) + into(mcpDir) + } } println("Parsing params.csv ...") @@ -942,42 +1022,6 @@ static int replaceParams(File file, Map params) { return 0 } -// Credit: bitsnaps (https://gist.github.com/bitsnaps/00947f2dce66f4bbdabc67d7e7b33681) -static unzip(String zipFileName, String outputDir) { - byte[] buffer = new byte[16384] - ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFileName)) - ZipEntry zipEntry = zis.getNextEntry() - while (zipEntry != null) { - File newFile = new File(outputDir + File.separator, zipEntry.name) - if (zipEntry.isDirectory()) { - if (!newFile.isDirectory() && !newFile.mkdirs()) { - throw new IOException("Failed to create directory $newFile") - } - } else { - // fix for Windows-created archives - File parent = newFile.parentFile - if (!parent.isDirectory() && !parent.mkdirs()) { - throw new IOException("Failed to create directory $parent") - } - // write file content - FileOutputStream fos = new FileOutputStream(newFile) - int len = 0 - while ((len = zis.read(buffer)) > 0) { - fos.write(buffer, 0, len) - } - fos.close() - } - zipEntry = zis.getNextEntry() - } - zis.closeEntry() - zis.close() -} - -configure(deobfParams) { - group = 'forgegradle' - description = 'Rename all obfuscated parameter names inherited from Minecraft classes' -} - // Dependency Deobfuscation def deobf(String sourceURL) { @@ -1004,11 +1048,29 @@ def deobf(String sourceURL) { hostName = String.join(".", parts) return deobf(sourceURL, "$hostName/$fileName") - } catch (Exception e) { + } catch (Exception ignored) { return deobf(sourceURL, "deobf/${sourceURL.hashCode()}") } } +def deobfMaven(String repoURL, String mavenDep) { + if (!repoURL.endsWith("/")) { + repoURL += "/" + } + String[] parts = mavenDep.split(":") + parts[0] = parts[0].replace('.', '/') + def jarURL = repoURL + parts[0] + "/" + parts[1] + "/" + parts[2] + "/" + parts[1] + "-" + parts[2] + ".jar" + return deobf(jarURL) +} + +def deobfCurse(String curseDep) { + try { + return deobfMaven("https://www.cursemaven.com/", "curse.maven:$curseDep") + } catch (Exception ignored) { + out.style(Style.Failure).println("Failed to get $curseDep from cursemaven.") + } +} + // The method above is to be preferred. Use this method if the filename is not at the end of the URL. def deobf(String sourceURL, String rawFileName) { String bon2Version = "2.5.1" @@ -1114,7 +1176,7 @@ def getFile(String relativePath) { def getSecondaryArtifacts() { // Because noPublishedSources from the beginning of the script is somehow not visible here... boolean noPublishedSources = project.hasProperty("noPublishedSources") ? project.noPublishedSources.toBoolean() : false - def secondaryArtifacts = [devJar] + def secondaryArtifacts = [publishableDevJar] if (!noPublishedSources) secondaryArtifacts += [sourcesJar] if (apiPackage) secondaryArtifacts += [apiJar] return secondaryArtifacts diff --git a/dependencies.gradle b/dependencies.gradle index 12fb2e62..87b29a4f 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -23,5 +23,5 @@ dependencies { compileOnly('com.github.GTNewHorizons:GTplusplus:1.7.191:dev') { transitive = false } compileOnly('com.github.GTNewHorizons:KekzTech:0.6.25:dev') - runtime('com.github.GTNewHorizons:Baubles:1.0.1.14:dev') + runtimeOnly('com.github.GTNewHorizons:Baubles:1.0.1.14:dev') } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 5c2d1cf016b3885f6930543d57b744ea8c220a1a..ccebba7710deaf9f98673a68957ea02138b60d0a 100644 GIT binary patch delta 42198 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%0Dx9&DJ+=*NrOLFNd~jpXIl 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 OOi;9)pb#jaQ2zt%fx@f+ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3ab0b725..f398c33c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 91a7e269..79a61d42 100755 --- a/gradlew +++ b/gradlew @@ -1,79 +1,129 @@ -#!/usr/bin/env bash +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum -warn ( ) { +warn () { echo "$*" -} +} >&2 -die ( ) { +die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- -APP_HOME="`pwd -P`" -cd "$SAVED" >&- - CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -82,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + JAVACMD=java which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the @@ -90,75 +140,105 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/settings.gradle b/settings.gradle index 93c852a1..01ea5f12 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,10 +1,28 @@ + +pluginManagement { + repositories { + maven { + // RetroFuturaGradle + name "GTNH Maven" + url "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" + allowInsecureProtocol = true + mavenContent { + includeGroup("com.gtnewhorizons.retrofuturagradle") + } + } + gradlePluginPortal() + mavenCentral() + mavenLocal() + } +} + plugins { id 'com.diffplug.blowdryerSetup' version '1.6.0' + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.4.0' // Provides java toolchains } -apply plugin: 'com.diffplug.blowdryerSetup' - blowdryerSetup { - github('GTNewHorizons/ExampleMod1.7.10', 'tag', '0.1.5') + repoSubfolder 'gtnhShared' + github('GTNewHorizons/ExampleMod1.7.10', 'tag', '0.2.0') //devLocal '.' // Use this when testing config updates locally } From 69a5c0e6ee71fe714eabe24002f9e39aae3b97be Mon Sep 17 00:00:00 2001 From: Jason Mitchell Date: Sat, 28 Jan 2023 17:43:10 -0800 Subject: [PATCH 09/10] [ci skip] spotlessApply with the new settings --- .../java/com/glodblock/github/FluidCraft.java | 5 +- .../glodblock/github/client/ClientHelper.java | 8 +- .../github/client/gui/FCGuiLineField.java | 1 + .../github/client/gui/FCGuiTextField.java | 14 +- .../github/client/gui/GuiDualInterface.java | 39 +- .../github/client/gui/GuiFCImgButton.java | 21 +- .../github/client/gui/GuiFCPriority.java | 18 +- .../client/gui/GuiFluidCraftAmount.java | 8 +- .../client/gui/GuiFluidCraftConfirm.java | 56 +- .../github/client/gui/GuiFluidIO.java | 15 +- .../github/client/gui/GuiFluidInterface.java | 30 +- .../client/gui/GuiFluidLevelEmitter.java | 31 +- .../github/client/gui/GuiFluidMonitor.java | 13 +- .../client/gui/GuiFluidPacketDecoder.java | 8 +- .../client/gui/GuiFluidPatternEncoder.java | 31 +- .../client/gui/GuiFluidPatternTerminal.java | 55 +- ...GuiFluidPatternTerminalCraftingStatus.java | 8 +- .../client/gui/GuiFluidPatternTerminalEx.java | 73 +- .../client/gui/GuiFluidPortableCell.java | 4 +- .../github/client/gui/GuiFluidStorageBus.java | 31 +- .../github/client/gui/GuiFluidTerminal.java | 37 +- .../client/gui/GuiIngredientBuffer.java | 21 +- .../github/client/gui/GuiItemMonitor.java | 9 +- .../client/gui/GuiLargeIngredientBuffer.java | 25 +- .../github/client/gui/GuiLevelMaintainer.java | 88 +-- .../github/client/gui/GuiOCPatternEditor.java | 8 +- .../client/gui/GuiPatternValueAmount.java | 17 +- .../github/client/gui/base/FCGuiAmount.java | 30 +- .../client/gui/base/FCGuiEncodeTerminal.java | 60 +- .../github/client/gui/base/FCGuiMonitor.java | 113 +-- .../gui/container/ContainerDualInterface.java | 4 +- .../container/ContainerFluidCraftConfirm.java | 30 +- .../gui/container/ContainerFluidIO.java | 5 +- .../container/ContainerFluidInterface.java | 24 +- .../container/ContainerFluidLevelEmitter.java | 17 +- .../gui/container/ContainerFluidMonitor.java | 78 +- .../ContainerFluidPacketDecoder.java | 4 +- .../ContainerFluidPatternEncoder.java | 51 +- .../ContainerFluidPatternTerminal.java | 23 +- .../ContainerFluidPatternTerminalEx.java | 29 +- .../container/ContainerFluidPortableCell.java | 13 +- .../container/ContainerFluidStorageBus.java | 57 +- .../container/ContainerIngredientBuffer.java | 17 +- .../gui/container/ContainerItemMonitor.java | 24 +- .../ContainerLargeIngredientBuffer.java | 6 +- .../container/ContainerLevelMaintainer.java | 13 +- .../container/ContainerOCPatternEditor.java | 19 +- .../ContainerPatternValueAmount.java | 5 +- .../base/FCContainerEncodeTerminal.java | 88 +-- .../base/FCContainerFluidConfigurable.java | 25 +- .../container/base/FCContainerMonitor.java | 33 +- .../glodblock/github/client/me/FluidRepo.java | 44 +- .../github/client/render/ItemDropRender.java | 17 +- .../client/render/ItemPacketRender.java | 17 +- .../client/render/ItemWalrusRender.java | 15 +- .../client/render/RenderBlockFluidBuffer.java | 20 +- .../render/RenderBlockFluidInterface.java | 30 +- .../render/RenderBlockLevelMaintainer.java | 21 +- .../client/render/RenderBlockWalrus.java | 5 +- .../client/textures/FCPartsTexture.java | 9 +- .../com/glodblock/github/common/Config.java | 13 +- .../common/block/BaseBlockContainer.java | 5 +- .../github/common/block/BlockFluidBuffer.java | 32 +- .../common/block/BlockFluidDiscretizer.java | 16 +- .../common/block/BlockFluidInterface.java | 26 +- .../common/block/BlockFluidPacketDecoder.java | 24 +- .../block/BlockFluidPatternEncoder.java | 14 +- .../common/block/BlockIngredientBuffer.java | 14 +- .../block/BlockLargeIngredientBuffer.java | 14 +- .../common/block/BlockLevelMaintainer.java | 27 +- .../common/block/BlockOCPatternEditor.java | 14 +- .../github/common/block/BlockWalrus.java | 22 +- .../github/common/block/FCBaseBlock.java | 25 +- .../common/item/BaseItemBlockContainer.java | 14 +- .../github/common/item/FCBaseItem.java | 3 +- .../github/common/item/FCBaseItemBlock.java | 18 +- .../item/ItemBasicFluidStorageCell.java | 126 ++-- .../item/ItemBasicFluidStoragePart.java | 23 +- .../item/ItemFluidConversionMonitor.java | 34 +- .../github/common/item/ItemFluidDrop.java | 29 +- .../common/item/ItemFluidEncodedPattern.java | 6 +- .../common/item/ItemFluidExportBus.java | 27 +- .../common/item/ItemFluidImportBus.java | 27 +- .../common/item/ItemFluidLevelEmitter.java | 27 +- .../github/common/item/ItemFluidPacket.java | 33 +- .../common/item/ItemFluidStorageMonitor.java | 34 +- .../common/item/ItemPartFluidInterface.java | 35 +- .../item/ItemPartFluidPatternTerminal.java | 35 +- .../item/ItemPartFluidPatternTerminalEx.java | 35 +- .../common/item/ItemPartFluidStorageBus.java | 35 +- .../common/item/ItemPartFluidTerminal.java | 37 +- .../common/item/ItemPortableFluidCell.java | 67 +- .../parts/PartFluidConversionMonitor.java | 51 +- .../common/parts/PartFluidExportBus.java | 28 +- .../common/parts/PartFluidImportBus.java | 36 +- .../common/parts/PartFluidInterface.java | 38 +- .../common/parts/PartFluidLevelEmitter.java | 68 +- .../parts/PartFluidPatternTerminal.java | 28 +- .../parts/PartFluidPatternTerminalEx.java | 32 +- .../common/parts/PartFluidStorageBus.java | 89 +-- .../common/parts/PartFluidStorageMonitor.java | 7 +- .../common/parts/PartFluidTerminal.java | 4 +- .../parts/base/FCFluidEncodeTerminal.java | 6 +- .../github/common/parts/base/FCPart.java | 63 +- .../common/parts/base/FCPartMonitor.java | 63 +- .../common/parts/base/FCSharedFluidBus.java | 21 +- .../github/common/storage/CellType.java | 5 +- .../common/storage/FluidCellHandler.java | 31 +- .../common/storage/FluidCellInventory.java | 24 +- .../storage/FluidCellInventoryHandler.java | 9 +- .../common/storage/IFluidCellInventory.java | 8 +- .../common/storage/IStorageFluidCell.java | 3 +- .../github/common/tabs/FluidCraftingTabs.java | 5 +- .../github/common/tile/TileFluidBuffer.java | 42 +- .../common/tile/TileFluidDiscretizer.java | 23 +- .../common/tile/TileFluidInterface.java | 25 +- .../common/tile/TileFluidPacketDecoder.java | 20 +- .../common/tile/TileFluidPatternEncoder.java | 23 +- .../common/tile/TileIngredientBuffer.java | 27 +- .../tile/TileLargeIngredientBuffer.java | 11 +- .../common/tile/TileLevelMaintainer.java | 39 +- .../common/tile/TileOCPatternEditor.java | 9 +- .../github/coremod/FCClassTransformer.java | 4 +- .../github/coremod/FluidCraftCore.java | 6 +- .../github/coremod/hooker/CoreModHooks.java | 29 +- ...ContainerInterfaceTerminalTransformer.java | 9 +- .../transform/CraftingCpuTransformer.java | 35 +- .../CraftingTreeNodeTransformer.java | 9 +- .../DualityInterfaceTransformer.java | 9 +- .../ExternalStorageRegistryTransformer.java | 3 +- .../transform/GuiCraftingTransformer.java | 6 +- .../coremod/transform/NEITransfermer.java | 6 +- .../DriverDualFluidInterface.java | 35 +- .../opencomputers/DriverLevelMaintainer.java | 44 +- .../opencomputers/DriverOCPatternEditor.java | 45 +- .../crossmod/waila/FCTooltipHandlerWaila.java | 17 +- .../crossmod/waila/PartWailaDataProvider.java | 54 +- .../crossmod/waila/TileWailaDataProvider.java | 41 +- .../github/crossmod/waila/Tooltip.java | 12 +- .../github/crossmod/waila/WailaInit.java | 4 +- .../waila/part/FluidInvWailaDataProvider.java | 33 +- .../part/FluidMonitorWailaDataProvider.java | 43 +- .../waila/part/SpeedWailaDataProvider.java | 30 +- .../waila/tile/FluidInvWailaDataProvider.java | 40 +- .../tile/LevelMaintainerWailaDataProvide.java | 44 +- .../github/inventory/AEFluidInventory.java | 31 +- .../github/inventory/AeItemStackHandler.java | 3 +- .../github/inventory/AeStackInventory.java | 4 +- .../inventory/AeStackInventoryImpl.java | 18 +- .../FluidConvertingInventoryAdaptor.java | 63 +- .../FluidConvertingInventoryCrafting.java | 8 +- .../github/inventory/IAEFluidInventory.java | 1 + .../github/inventory/IAEFluidTank.java | 4 +- .../glodblock/github/inventory/IDualHost.java | 4 +- .../github/inventory/InventoryHandler.java | 11 +- .../inventory/MEMonitorIFluidHandler.java | 13 +- .../external/AEFluidInterfaceHandler.java | 12 +- .../external/AEFluidTankHandler.java | 8 +- .../inventory/gui/ButtonMouseHandler.java | 11 +- .../github/inventory/gui/GuiType.java | 31 +- .../github/inventory/gui/IGuiFactory.java | 6 +- .../github/inventory/gui/ItemGuiFactory.java | 9 +- .../inventory/gui/MouseRegionManager.java | 9 +- .../github/inventory/gui/PartGuiFactory.java | 8 +- .../inventory/gui/TankMouseHandler.java | 19 +- .../github/inventory/gui/TileGuiFactory.java | 6 +- .../inventory/gui/TileOrPartGuiFactory.java | 8 +- .../inventory/item/IFluidPortableCell.java | 3 +- .../item/PortableFluidCellInventory.java | 9 +- .../inventory/slot/FCSlotRestrictedInput.java | 4 +- .../github/inventory/slot/ISlotFluid.java | 3 +- .../slot/OptionalFluidSlotFakeTypeOnly.java | 20 +- .../slot/SlotFluidConvertingFake.java | 15 +- .../github/inventory/slot/SlotSingleItem.java | 8 +- .../loader/CalculatorV2PluginLoader.java | 2 + .../github/loader/ChannelLoader.java | 63 +- .../github/loader/ItemAndBlockHolder.java | 24 +- .../glodblock/github/loader/RecipeLoader.java | 691 ++++++++++-------- ...dPatternTerminalRecipeTransferHandler.java | 12 +- .../glodblock/github/nei/NEIGuiHandler.java | 4 +- .../com/glodblock/github/nei/NEIUtils.java | 4 +- .../glodblock/github/nei/NEI_FC_Config.java | 9 +- .../github/nei/object/IRecipeExtractor.java | 7 +- .../github/nei/object/OrderStack.java | 7 +- .../nei/recipes/DefaultExtractorLoader.java | 6 +- .../github/nei/recipes/FluidRecipe.java | 15 +- .../extractor/EnderIORecipeExtractor.java | 24 +- .../nei/recipes/extractor/ExtractorUtil.java | 34 +- .../extractor/ForestryRecipeExtractor.java | 22 +- .../extractor/GregTech5RecipeExtractor.java | 19 +- .../extractor/GregTech6RecipeExtractor.java | 14 +- .../IndustrialCraftRecipeExtractor.java | 36 +- .../extractor/VanillaRecipeExtractor.java | 8 +- .../github/network/CPacketCraftRequest.java | 30 +- .../github/network/CPacketDumpTank.java | 7 +- .../github/network/CPacketEncodePattern.java | 7 +- .../network/CPacketFluidPatternTermBtns.java | 4 +- .../github/network/CPacketFluidUpdate.java | 31 +- .../network/CPacketInventoryAction.java | 29 +- .../network/CPacketLevelMaintainer.java | 30 +- .../network/CPacketPatternValueSet.java | 19 +- .../github/network/CPacketSwitchGuis.java | 16 +- .../github/network/CPacketTransferRecipe.java | 22 +- .../github/network/CPacketValueConfig.java | 7 +- .../github/network/SPacketFluidUpdate.java | 16 +- .../network/SPacketMEInventoryUpdate.java | 18 +- .../github/network/SPacketSetItemAmount.java | 10 +- .../glodblock/github/proxy/ClientProxy.java | 1 + .../glodblock/github/proxy/CommonProxy.java | 5 +- .../com/glodblock/github/util/Ae2Reflect.java | 20 +- .../github/util/Ae2ReflectClient.java | 14 +- .../com/glodblock/github/util/BlockPos.java | 2 + .../github/util/DualityFluidInterface.java | 66 +- .../github/util/FluidPatternDetails.java | 11 +- .../glodblock/github/util/FluidSorters.java | 12 +- .../github/util/ModAndClassUtil.java | 3 +- .../com/glodblock/github/util/NameConst.java | 4 +- .../github/util/ObjectArrayIterator.java | 37 +- .../com/glodblock/github/util/RenderUtil.java | 28 +- .../github/util/SetBackedMachineSet.java | 10 +- .../java/com/glodblock/github/util/Util.java | 41 +- 221 files changed, 3125 insertions(+), 2632 deletions(-) diff --git a/src/main/java/com/glodblock/github/FluidCraft.java b/src/main/java/com/glodblock/github/FluidCraft.java index cd9e2c57..5c3061a6 100644 --- a/src/main/java/com/glodblock/github/FluidCraft.java +++ b/src/main/java/com/glodblock/github/FluidCraft.java @@ -1,6 +1,9 @@ package com.glodblock.github; +import net.minecraft.util.ResourceLocation; + import appeng.api.AEApi; + import com.glodblock.github.common.Config; import com.glodblock.github.common.storage.FluidCellHandler; import com.glodblock.github.crossmod.opencomputers.OCDriverInit; @@ -12,6 +15,7 @@ import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.loader.RecipeLoader; import com.glodblock.github.proxy.CommonProxy; import com.glodblock.github.util.ModAndClassUtil; + import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; @@ -19,7 +23,6 @@ import cpw.mods.fml.common.event.FMLLoadCompleteEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkRegistry; -import net.minecraft.util.ResourceLocation; @Mod( modid = FluidCraft.MODID, diff --git a/src/main/java/com/glodblock/github/client/ClientHelper.java b/src/main/java/com/glodblock/github/client/ClientHelper.java index 45f80896..c067fa88 100644 --- a/src/main/java/com/glodblock/github/client/ClientHelper.java +++ b/src/main/java/com/glodblock/github/client/ClientHelper.java @@ -1,11 +1,13 @@ package com.glodblock.github.client; -import com.glodblock.github.client.textures.FCPartsTexture; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.common.MinecraftForge; +import com.glodblock.github.client.textures.FCPartsTexture; + +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + public class ClientHelper { @SubscribeEvent diff --git a/src/main/java/com/glodblock/github/client/gui/FCGuiLineField.java b/src/main/java/com/glodblock/github/client/gui/FCGuiLineField.java index c3cd7bd2..dd0064dc 100644 --- a/src/main/java/com/glodblock/github/client/gui/FCGuiLineField.java +++ b/src/main/java/com/glodblock/github/client/gui/FCGuiLineField.java @@ -3,6 +3,7 @@ package com.glodblock.github.client.gui; import net.minecraft.client.gui.FontRenderer; public class FCGuiLineField extends FCGuiTextField { + private final int _xPos; private final int _yPos; private final int _width; diff --git a/src/main/java/com/glodblock/github/client/gui/FCGuiTextField.java b/src/main/java/com/glodblock/github/client/gui/FCGuiTextField.java index db0d4efc..90f70f8a 100644 --- a/src/main/java/com/glodblock/github/client/gui/FCGuiTextField.java +++ b/src/main/java/com/glodblock/github/client/gui/FCGuiTextField.java @@ -1,11 +1,13 @@ package com.glodblock.github.client.gui; -import appeng.client.gui.AEBaseGui; -import appeng.client.gui.widgets.ITooltip; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiTextField; +import appeng.client.gui.AEBaseGui; +import appeng.client.gui.widgets.ITooltip; + public class FCGuiTextField extends GuiTextField { + private static final int PADDING = 2; private final FontRenderer _fontRender; private String tooltip; @@ -18,8 +20,7 @@ public class FCGuiTextField extends GuiTextField { private int _color; /** - * Uses the values to instantiate a padded version of a text field. - * Pays attention to the '_' caret. + * Uses the values to instantiate a padded version of a text field. Pays attention to the '_' caret. * * @param fontRenderer renderer for the strings * @param xPos absolute left position @@ -27,8 +28,8 @@ public class FCGuiTextField extends GuiTextField { * @param width absolute width * @param height absolute height */ - public FCGuiTextField( - final FontRenderer fontRenderer, final int xPos, final int yPos, final int width, final int height) { + public FCGuiTextField(final FontRenderer fontRenderer, final int xPos, final int yPos, final int width, + final int height) { super( fontRenderer, xPos + PADDING, @@ -136,6 +137,7 @@ public class FCGuiTextField extends GuiTextField { } public class TooltipProvider implements ITooltip { + @Override public String getMessage() { return tooltip; diff --git a/src/main/java/com/glodblock/github/client/gui/GuiDualInterface.java b/src/main/java/com/glodblock/github/client/gui/GuiDualInterface.java index 11cf0279..7cfd1dfc 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiDualInterface.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiDualInterface.java @@ -1,5 +1,11 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.StatCollector; + +import org.lwjgl.input.Mouse; + import appeng.api.config.InsertionMode; import appeng.api.config.Settings; import appeng.api.config.SidelessMode; @@ -13,6 +19,7 @@ import appeng.core.localization.GuiText; import appeng.core.sync.network.NetworkHandler; import appeng.core.sync.packets.PacketConfigButton; import appeng.helpers.IInterfaceHost; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerDualInterface; import com.glodblock.github.common.parts.PartFluidInterface; @@ -22,10 +29,6 @@ import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.network.CPacketSwitchGuis; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.StatCollector; -import org.lwjgl.input.Mouse; public class GuiDualInterface extends GuiUpgradeable { @@ -46,15 +49,18 @@ public class GuiDualInterface extends GuiUpgradeable { @Override @SuppressWarnings("unchecked") protected void addButtons() { - this.priority = - new GuiTabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.getLocal(), itemRender); + this.priority = new GuiTabButton( + this.guiLeft + 154, + this.guiTop, + 2 + 4 * 16, + GuiText.Priority.getLocal(), + itemRender); this.buttonList.add(this.priority); this.switcher = new GuiTabButton( this.guiLeft + 132, this.guiTop, - host instanceof PartFluidInterface - ? ItemAndBlockHolder.FLUID_INTERFACE.stack() + host instanceof PartFluidInterface ? ItemAndBlockHolder.FLUID_INTERFACE.stack() : ItemAndBlockHolder.INTERFACE.stack(), StatCollector.translateToLocal("ae2fc.tooltip.switch_fluid_interface"), itemRender); @@ -72,13 +78,19 @@ public class GuiDualInterface extends GuiUpgradeable { GuiText.InterfaceTerminalHint.getLocal()); this.buttonList.add(this.interfaceMode); - this.insertionMode = - new GuiImgButton(this.guiLeft - 18, this.guiTop + 44, Settings.INSERTION_MODE, InsertionMode.DEFAULT); + this.insertionMode = new GuiImgButton( + this.guiLeft - 18, + this.guiTop + 44, + Settings.INSERTION_MODE, + InsertionMode.DEFAULT); this.buttonList.add(this.insertionMode); if (isTile()) { this.sidelessMode = new GuiImgButton( - this.guiLeft - 18, this.guiTop + 62, Settings.SIDELESS_MODE, SidelessMode.SIDELESS); + this.guiLeft - 18, + this.guiTop + 62, + Settings.SIDELESS_MODE, + SidelessMode.SIDELESS); this.buttonList.add(this.sidelessMode); } } @@ -100,7 +112,10 @@ public class GuiDualInterface extends GuiUpgradeable { } this.fontRendererObj.drawString( - getGuiDisplayName(StatCollector.translateToLocal(NameConst.GUI_FLUID_INTERFACE)), 8, 6, 4210752); + getGuiDisplayName(StatCollector.translateToLocal(NameConst.GUI_FLUID_INTERFACE)), + 8, + 6, + 4210752); } @Override diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFCImgButton.java b/src/main/java/com/glodblock/github/client/gui/GuiFCImgButton.java index eaae370d..e6e7b8f0 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFCImgButton.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFCImgButton.java @@ -1,16 +1,20 @@ package com.glodblock.github.client.gui; -import appeng.client.gui.widgets.ITooltip; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.util.NameConst; import java.util.HashMap; import java.util.Map; import java.util.regex.Pattern; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.util.StatCollector; + import org.lwjgl.opengl.GL11; +import appeng.client.gui.widgets.ITooltip; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.util.NameConst; + public class GuiFCImgButton extends GuiButton implements ITooltip { private static final Pattern COMPILE = Pattern.compile("%s"); @@ -138,8 +142,8 @@ public class GuiFCImgButton extends GuiButton implements ITooltip { String displayValue = null; if (this.buttonSetting != null && this.currentValue != null) { - final ButtonAppearance buttonAppearance = - appearances.get(new EnumPair(this.buttonSetting, this.currentValue)); + final ButtonAppearance buttonAppearance = appearances + .get(new EnumPair(this.buttonSetting, this.currentValue)); if (buttonAppearance == null) { return "No Such Message"; } @@ -196,8 +200,7 @@ public class GuiFCImgButton extends GuiButton implements ITooltip { } par1Minecraft.renderEngine.bindTexture(FluidCraft.resource("textures/gui/states.png")); - this.field_146123_n = par2 >= this.xPosition - && par3 >= this.yPosition + this.field_146123_n = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; @@ -233,8 +236,7 @@ public class GuiFCImgButton extends GuiButton implements ITooltip { } par1Minecraft.renderEngine.bindTexture(FluidCraft.resource("textures/gui/states.png")); - this.field_146123_n = par2 >= this.xPosition - && par3 >= this.yPosition + this.field_146123_n = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; @@ -292,6 +294,7 @@ public class GuiFCImgButton extends GuiButton implements ITooltip { } private static class ButtonAppearance { + public int index; public String displayName; public String displayValue; diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java b/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java index 729c0cfd..d51ab6ca 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java @@ -1,5 +1,9 @@ package com.glodblock.github.client.gui; +import java.io.IOException; + +import net.minecraft.entity.player.InventoryPlayer; + import appeng.container.implementations.ContainerPriority; import appeng.core.AELog; import appeng.core.localization.GuiText; @@ -8,13 +12,12 @@ import appeng.core.sync.packets.PacketValueConfig; import appeng.helpers.IPriorityHost; import appeng.util.calculators.ArithHelper; import appeng.util.calculators.Calculator; + import com.glodblock.github.client.gui.base.FCGuiAmount; import com.glodblock.github.common.parts.PartFluidStorageBus; import com.glodblock.github.inventory.IDualHost; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.loader.ItemAndBlockHolder; -import java.io.IOException; -import net.minecraft.entity.player.InventoryPlayer; public class GuiFCPriority extends FCGuiAmount { @@ -46,11 +49,10 @@ public class GuiFCPriority extends FCGuiAmount { protected void addQty(final int i) { try { this.amountBox.setText(Long.toString(getAmount() + i)); - } catch (final NumberFormatException ignore) { - } + } catch (final NumberFormatException ignore) {} try { - NetworkHandler.instance.sendToServer( - new PacketValueConfig("PriorityHost.Priority", String.valueOf(getAmount()))); + NetworkHandler.instance + .sendToServer(new PacketValueConfig("PriorityHost.Priority", String.valueOf(getAmount()))); } catch (IOException e) { AELog.debug(e); } @@ -71,8 +73,8 @@ public class GuiFCPriority extends FCGuiAmount { protected void keyTyped(final char character, final int key) { super.keyTyped(character, key); try { - NetworkHandler.instance.sendToServer( - new PacketValueConfig("PriorityHost.Priority", String.valueOf(getAmount()))); + NetworkHandler.instance + .sendToServer(new PacketValueConfig("PriorityHost.Priority", String.valueOf(getAmount()))); } catch (IOException e) { AELog.debug(e); } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftAmount.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftAmount.java index 2a318a0a..5b4f4ece 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftAmount.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftAmount.java @@ -1,8 +1,13 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; + import appeng.api.storage.ITerminalHost; import appeng.container.implementations.ContainerCraftAmount; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.base.FCGuiAmount; import com.glodblock.github.common.parts.PartFluidPatternTerminal; @@ -11,9 +16,6 @@ import com.glodblock.github.common.parts.PartFluidTerminal; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.network.CPacketCraftRequest; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; public class GuiFluidCraftAmount extends FCGuiAmount { diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftConfirm.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftConfirm.java index 067ca1e4..febf6194 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftConfirm.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftConfirm.java @@ -1,5 +1,15 @@ package com.glodblock.github.client.gui; +import java.text.NumberFormat; +import java.util.*; + +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; + +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; + import appeng.api.AEApi; import appeng.api.storage.ITerminalHost; import appeng.api.storage.data.IAEItemStack; @@ -10,6 +20,7 @@ import appeng.core.AELog; import appeng.core.localization.GuiText; import appeng.integration.modules.NEI; import appeng.util.Platform; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerFluidCraftConfirm; import com.glodblock.github.common.parts.PartFluidPatternTerminal; @@ -20,13 +31,6 @@ import com.glodblock.github.network.CPacketFluidPatternTermBtns; import com.glodblock.github.network.CPacketSwitchGuis; import com.glodblock.github.util.ModAndClassUtil; import com.google.common.base.Joiner; -import java.text.NumberFormat; -import java.util.*; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; -import org.lwjgl.input.Mouse; -import org.lwjgl.opengl.GL11; public class GuiFluidCraftConfirm extends AEBaseGui { @@ -72,8 +76,13 @@ public class GuiFluidCraftConfirm extends AEBaseGui { public void initGui() { super.initGui(); - this.start = - new GuiButton(0, this.guiLeft + 162, this.guiTop + this.ySize - 25, 50, 20, GuiText.Start.getLocal()); + this.start = new GuiButton( + 0, + this.guiLeft + 162, + this.guiTop + this.ySize - 25, + 50, + 20, + GuiText.Start.getLocal()); this.start.enabled = false; this.buttonList.add(this.start); @@ -89,7 +98,12 @@ public class GuiFluidCraftConfirm extends AEBaseGui { if (this.OriginalGui != null) { this.cancel = new GuiButton( - 0, this.guiLeft + 6, this.guiTop + this.ySize - 25, 50, 20, GuiText.Cancel.getLocal()); + 0, + this.guiLeft + 6, + this.guiTop + this.ySize - 25, + 50, + 20, + GuiText.Cancel.getLocal()); } this.buttonList.add(this.cancel); @@ -137,9 +151,7 @@ public class GuiFluidCraftConfirm extends AEBaseGui { if (this.ccc.getSelectedCpu() >= 0) // && status.selectedCpu < status.cpus.size() ) { if (this.ccc.getName().length() > 0) { - final String name = this.ccc - .getName() - .substring(0, Math.min(20, this.ccc.getName().length())); + final String name = this.ccc.getName().substring(0, Math.min(20, this.ccc.getName().length())); btnTextText = GuiText.CraftingCPU.getLocal() + ": " + name; } else { btnTextText = GuiText.CraftingCPU.getLocal() + ": #" + this.ccc.getSelectedCpu(); @@ -161,8 +173,8 @@ public class GuiFluidCraftConfirm extends AEBaseGui { public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { final long BytesUsed = this.ccc.getUsedBytes(); final String byteUsed = NumberFormat.getInstance().format(BytesUsed); - final String Add = - BytesUsed > 0 ? (byteUsed + ' ' + GuiText.BytesUsed.getLocal()) : GuiText.CalculatingWait.getLocal(); + final String Add = BytesUsed > 0 ? (byteUsed + ' ' + GuiText.BytesUsed.getLocal()) + : GuiText.CalculatingWait.getLocal(); this.fontRendererObj.drawString(GuiText.CraftingPlan.getLocal() + " - " + Add, 8, 7, 4210752); String dsp = null; @@ -171,8 +183,12 @@ public class GuiFluidCraftConfirm extends AEBaseGui { dsp = GuiText.Simulation.getLocal(); } else { dsp = this.ccc.getCpuAvailableBytes() > 0 - ? (GuiText.Bytes.getLocal() + ": " + this.ccc.getCpuAvailableBytes() + " : " - + GuiText.CoProcessors.getLocal() + ": " + this.ccc.getCpuCoProcessors()) + ? (GuiText.Bytes.getLocal() + ": " + + this.ccc.getCpuAvailableBytes() + + " : " + + GuiText.CoProcessors.getLocal() + + ": " + + this.ccc.getCpuCoProcessors()) : GuiText.Bytes.getLocal() + ": N/A : " + GuiText.CoProcessors.getLocal() + ": N/A"; } @@ -479,8 +495,8 @@ public class GuiFluidCraftConfirm extends AEBaseGui { final boolean backwards = Mouse.isButtonDown(1); if (btn == this.selectCPU) { - FluidCraft.proxy.netHandler.sendToServer( - new CPacketFluidPatternTermBtns("Terminal.Cpu", backwards ? "Prev" : "Next")); + FluidCraft.proxy.netHandler + .sendToServer(new CPacketFluidPatternTermBtns("Terminal.Cpu", backwards ? "Prev" : "Next")); } if (btn == this.cancel) { @@ -497,7 +513,7 @@ public class GuiFluidCraftConfirm extends AEBaseGui { } } - @SuppressWarnings({"rawtypes", "unchecked"}) + @SuppressWarnings({ "rawtypes", "unchecked" }) protected void addItemTooltip(ItemStack is, List lineList) { if (isShiftKeyDown()) { List l = is.getTooltip(this.mc.thePlayer, this.mc.gameSettings.advancedItemTooltips); diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidIO.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidIO.java index 3f14f5b8..d753fe7a 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidIO.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidIO.java @@ -1,16 +1,19 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; + import appeng.api.storage.data.IAEFluidStack; import appeng.client.gui.implementations.GuiUpgradeable; import appeng.core.localization.GuiText; + import com.glodblock.github.client.gui.container.ContainerFluidIO; import com.glodblock.github.common.parts.PartFluidImportBus; import com.glodblock.github.common.parts.base.FCSharedFluidBus; import com.glodblock.github.util.NameConst; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; public class GuiFluidIO extends GuiUpgradeable { + private final FCSharedFluidBus bus; public GuiFluidIO(InventoryPlayer inventoryPlayer, FCSharedFluidBus te) { @@ -30,10 +33,10 @@ public class GuiFluidIO extends GuiUpgradeable { @Override public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { this.fontRendererObj.drawString( - this.getGuiDisplayName(I18n.format( - this.bus instanceof PartFluidImportBus - ? NameConst.GUI_FLUID_IMPORT - : NameConst.GUI_FLUID_EXPORT)), + this.getGuiDisplayName( + I18n.format( + this.bus instanceof PartFluidImportBus ? NameConst.GUI_FLUID_IMPORT + : NameConst.GUI_FLUID_EXPORT)), 8, 6, 4210752); diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidInterface.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidInterface.java index 64161f65..ce492b98 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidInterface.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidInterface.java @@ -1,9 +1,22 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; +import net.minecraftforge.common.util.ForgeDirection; + +import org.lwjgl.opengl.GL11; + import appeng.api.storage.data.IAEFluidStack; import appeng.client.gui.AEBaseGui; import appeng.client.gui.widgets.GuiTabButton; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerFluidInterface; import com.glodblock.github.common.parts.PartFluidInterface; @@ -16,16 +29,6 @@ import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.network.CPacketSwitchGuis; import com.glodblock.github.util.NameConst; import com.glodblock.github.util.RenderUtil; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.StatCollector; -import net.minecraftforge.common.util.ForgeDirection; -import org.lwjgl.opengl.GL11; public class GuiFluidInterface extends AEBaseGui { @@ -58,11 +61,8 @@ public class GuiFluidInterface extends AEBaseGui { @Override public void func_146977_a(final Slot s) { try { - GuiContainer.class - .getDeclaredMethod("func_146977_a_original", Slot.class) - .invoke(this, s); - } catch (final Exception ignore) { - } + GuiContainer.class.getDeclaredMethod("func_146977_a_original", Slot.class).invoke(this, s); + } catch (final Exception ignore) {} } @Override diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidLevelEmitter.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidLevelEmitter.java index 9458210c..e831a240 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidLevelEmitter.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidLevelEmitter.java @@ -1,5 +1,8 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.InventoryPlayer; + import appeng.api.config.*; import appeng.api.storage.data.IAEFluidStack; import appeng.client.gui.implementations.GuiUpgradeable; @@ -10,16 +13,16 @@ import appeng.core.AEConfig; import appeng.core.AELog; import appeng.core.localization.GuiColors; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerFluidLevelEmitter; import com.glodblock.github.common.parts.PartFluidLevelEmitter; import com.glodblock.github.network.CPacketValueConfig; import com.glodblock.github.util.Ae2ReflectClient; import com.glodblock.github.util.NameConst; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.InventoryPlayer; public class GuiFluidLevelEmitter extends GuiUpgradeable { + private GuiNumberBox level; private final AppEngRenderItem stackSizeRenderer = Ae2ReflectClient.getStackSizeRenderer(this); private GuiButton plus1; @@ -52,7 +55,10 @@ public class GuiFluidLevelEmitter extends GuiUpgradeable { @Override protected void addButtons() { this.redstoneMode = new GuiImgButton( - this.guiLeft - 18, this.guiTop + 8, Settings.REDSTONE_EMITTER, RedstoneMode.LOW_SIGNAL); + this.guiLeft - 18, + this.guiTop + 8, + Settings.REDSTONE_EMITTER, + RedstoneMode.LOW_SIGNAL); final int a = AEConfig.instance.levelByStackAmounts(0); final int b = AEConfig.instance.levelByStackAmounts(1); @@ -75,9 +81,15 @@ public class GuiFluidLevelEmitter extends GuiUpgradeable { @Override public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { this.fontRendererObj.drawString( - NameConst.i18n(NameConst.GUI_FLUID_LEVEL_EMITTER), 8, 6, GuiColors.UpgradableTitle.getColor()); + NameConst.i18n(NameConst.GUI_FLUID_LEVEL_EMITTER), + 8, + 6, + GuiColors.UpgradableTitle.getColor()); this.fontRendererObj.drawString( - GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, GuiColors.UpgradableInventory.getColor()); + GuiText.inventory.getLocal(), + 8, + this.ySize - 96 + 3, + GuiColors.UpgradableInventory.getColor()); this.redstoneMode.set(this.cvb.getRedStoneMode()); this.level.drawTextBox(); if (isShiftKeyDown() && !isMul) { @@ -90,8 +102,8 @@ public class GuiFluidLevelEmitter extends GuiUpgradeable { } else if (!isShiftKeyDown() && isMul) { for (Object btn : this.buttonList) { if (btn instanceof GuiButton) { - ((GuiButton) btn).displayString = ((GuiButton) btn) - .displayString.substring(0, ((GuiButton) btn).displayString.lastIndexOf("000")); + ((GuiButton) btn).displayString = ((GuiButton) btn).displayString + .substring(0, ((GuiButton) btn).displayString.lastIndexOf("000")); } } isMul = false; @@ -115,8 +127,9 @@ public class GuiFluidLevelEmitter extends GuiUpgradeable { protected void actionPerformed(final GuiButton btn) { super.actionPerformed(btn); final boolean isPlus = btn == this.plus1 || btn == this.plus10 || btn == this.plus100 || btn == this.plus1000; - final boolean isMinus = - btn == this.minus1 || btn == this.minus10 || btn == this.minus100 || btn == this.minus1000; + final boolean isMinus = btn == this.minus1 || btn == this.minus10 + || btn == this.minus100 + || btn == this.minus1000; if (isPlus || isMinus) { this.addQty(this.getQty(btn)); diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidMonitor.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidMonitor.java index 26bbca5e..1f96d1f1 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidMonitor.java @@ -1,23 +1,26 @@ package com.glodblock.github.client.gui; +import java.util.List; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; + import appeng.api.storage.ITerminalHost; import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; import appeng.core.localization.GuiText; import appeng.util.item.AEItemStack; + import com.glodblock.github.client.gui.base.FCGuiMonitor; import com.glodblock.github.client.gui.container.ContainerFluidMonitor; import com.glodblock.github.client.me.FluidRepo; import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.util.Util; -import java.util.List; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; public class GuiFluidMonitor extends FCGuiMonitor { - public GuiFluidMonitor( - final InventoryPlayer inventoryPlayer, final ITerminalHost te, final ContainerFluidMonitor c) { + public GuiFluidMonitor(final InventoryPlayer inventoryPlayer, final ITerminalHost te, + final ContainerFluidMonitor c) { super(inventoryPlayer, te, c); this.repo = new FluidRepo(getScrollBar(), this); } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPacketDecoder.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPacketDecoder.java index cb031b32..a6b16442 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidPacketDecoder.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPacketDecoder.java @@ -1,14 +1,16 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + import appeng.client.gui.AEBaseGui; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerFluidPacketDecoder; import com.glodblock.github.common.tile.TileFluidPacketDecoder; import com.glodblock.github.util.NameConst; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; public class GuiFluidPacketDecoder extends AEBaseGui { diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternEncoder.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternEncoder.java index 9cdea974..08733438 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternEncoder.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternEncoder.java @@ -1,9 +1,23 @@ package com.glodblock.github.client.gui; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.storage.data.IAEItemStack; import appeng.client.gui.AEBaseGui; import appeng.client.render.AppEngRenderItem; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerFluidPatternEncoder; import com.glodblock.github.common.item.ItemFluidPacket; @@ -14,17 +28,6 @@ import com.glodblock.github.inventory.slot.SlotSingleItem; import com.glodblock.github.network.CPacketEncodePattern; import com.glodblock.github.util.Ae2ReflectClient; import com.glodblock.github.util.NameConst; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fluids.FluidStack; public class GuiFluidPatternEncoder extends AEBaseGui { @@ -38,6 +41,7 @@ public class GuiFluidPatternEncoder extends AEBaseGui { super(new ContainerFluidPatternEncoder(ipl, tile)); this.cont = (ContainerFluidPatternEncoder) inventorySlots; mouseRegions.addRegion(141, 38, 10, 10, new MouseRegionManager.Handler() { + @Override public List getTooltip() { return Collections.singletonList(I18n.format(NameConst.TT_ENCODE_PATTERN)); @@ -104,14 +108,15 @@ public class GuiFluidPatternEncoder extends AEBaseGui { } @Override - @SuppressWarnings({"unchecked", "rawtypes"}) + @SuppressWarnings({ "unchecked", "rawtypes" }) protected void renderToolTip(ItemStack stack, int x, int y) { List list; if (stack.getItem() instanceof ItemFluidPacket) { FluidStack fluid = ItemFluidPacket.getFluidStack(stack); if (fluid != null) { list = Arrays.asList( - fluid.getLocalizedName(), String.format(EnumChatFormatting.GRAY + "%,d mB", fluid.amount)); + fluid.getLocalizedName(), + String.format(EnumChatFormatting.GRAY + "%,d mB", fluid.amount)); } else { list = stack.getTooltip(this.mc.thePlayer, this.mc.gameSettings.advancedItemTooltips); } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminal.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminal.java index f2030d24..8ce4e822 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminal.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminal.java @@ -1,5 +1,11 @@ package com.glodblock.github.client.gui; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; + import appeng.api.config.ActionItems; import appeng.api.config.ItemSubstitution; import appeng.api.config.PatternBeSubstitution; @@ -11,15 +17,11 @@ import appeng.container.slot.OptionalSlotFake; import appeng.container.slot.SlotFakeCraftingMatrix; import appeng.container.slot.SlotPatternTerm; import appeng.core.localization.GuiText; + import com.glodblock.github.client.gui.base.FCGuiEncodeTerminal; import com.glodblock.github.client.gui.container.ContainerFluidPatternTerminal; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.util.StatCollector; public class GuiFluidPatternTerminal extends FCGuiEncodeTerminal { @@ -48,29 +50,44 @@ public class GuiFluidPatternTerminal extends FCGuiEncodeTerminal { this.buttonList.add(this.tabProcessButton); this.substitutionsEnabledBtn = new GuiImgButton( - this.guiLeft + 84, this.guiTop + this.ySize - 163, Settings.ACTIONS, ItemSubstitution.ENABLED); + this.guiLeft + 84, + this.guiTop + this.ySize - 163, + Settings.ACTIONS, + ItemSubstitution.ENABLED); this.substitutionsEnabledBtn.setHalfSize(true); this.buttonList.add(this.substitutionsEnabledBtn); this.substitutionsDisabledBtn = new GuiImgButton( - this.guiLeft + 84, this.guiTop + this.ySize - 163, Settings.ACTIONS, ItemSubstitution.DISABLED); + this.guiLeft + 84, + this.guiTop + this.ySize - 163, + Settings.ACTIONS, + ItemSubstitution.DISABLED); this.substitutionsDisabledBtn.setHalfSize(true); this.buttonList.add(this.substitutionsDisabledBtn); this.clearBtn = new GuiImgButton( - this.guiLeft + 74, this.guiTop + this.ySize - 163, Settings.ACTIONS, ActionItems.CLOSE); + this.guiLeft + 74, + this.guiTop + this.ySize - 163, + Settings.ACTIONS, + ActionItems.CLOSE); this.clearBtn.setHalfSize(true); this.buttonList.add(this.clearBtn); this.encodeBtn = new GuiImgButton( - this.guiLeft + 147, this.guiTop + this.ySize - 142, Settings.ACTIONS, ActionItems.ENCODE); + this.guiLeft + 147, + this.guiTop + this.ySize - 142, + Settings.ACTIONS, + ActionItems.ENCODE); this.buttonList.add(this.encodeBtn); int combineLeft = 74; int combineTop = 153; if (ModAndClassUtil.isDoubleButton) { this.doubleBtn = new GuiImgButton( - this.guiLeft + 74, this.guiTop + this.ySize - 153, Settings.ACTIONS, ActionItems.DOUBLE); + this.guiLeft + 74, + this.guiTop + this.ySize - 153, + Settings.ACTIONS, + ActionItems.DOUBLE); this.doubleBtn.setHalfSize(true); this.buttonList.add(this.doubleBtn); combineLeft = 84; @@ -79,7 +96,10 @@ public class GuiFluidPatternTerminal extends FCGuiEncodeTerminal { combineLeft = 74; combineTop -= 11; this.beSubstitutionsEnabledBtn = new GuiImgButton( - this.guiLeft + 84, this.guiTop + this.ySize - 153, Settings.ACTIONS, PatternBeSubstitution.ENABLED); + this.guiLeft + 84, + this.guiTop + this.ySize - 153, + Settings.ACTIONS, + PatternBeSubstitution.ENABLED); this.beSubstitutionsEnabledBtn.setHalfSize(true); this.buttonList.add(this.beSubstitutionsEnabledBtn); @@ -92,12 +112,18 @@ public class GuiFluidPatternTerminal extends FCGuiEncodeTerminal { this.buttonList.add(this.beSubstitutionsDisabledBtn); } this.combineEnableBtn = new GuiFCImgButton( - this.guiLeft + combineLeft, this.guiTop + this.ySize - combineTop, "FORCE_COMBINE", "DO_COMBINE"); + this.guiLeft + combineLeft, + this.guiTop + this.ySize - combineTop, + "FORCE_COMBINE", + "DO_COMBINE"); this.combineEnableBtn.setHalfSize(true); this.buttonList.add(this.combineEnableBtn); this.combineDisableBtn = new GuiFCImgButton( - this.guiLeft + combineLeft, this.guiTop + this.ySize - combineTop, "NOT_COMBINE", "DONT_COMBINE"); + this.guiLeft + combineLeft, + this.guiTop + this.ySize - combineTop, + "NOT_COMBINE", + "DONT_COMBINE"); this.combineDisableBtn.setHalfSize(true); this.buttonList.add(this.combineDisableBtn); } @@ -116,8 +142,7 @@ public class GuiFluidPatternTerminal extends FCGuiEncodeTerminal { protected void handleMouseClick(final Slot slot, final int slotIdx, final int ctrlDown, final int mouseButton) { if (mouseButton == 3) { if (this.container.isCraftingMode() - && (slot instanceof OptionalSlotFake - || slot instanceof SlotFakeCraftingMatrix + && (slot instanceof OptionalSlotFake || slot instanceof SlotFakeCraftingMatrix || slot instanceof SlotPatternTerm)) { return; } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalCraftingStatus.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalCraftingStatus.java index 4cf7278a..c0ac8608 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalCraftingStatus.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalCraftingStatus.java @@ -1,8 +1,13 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; + import appeng.api.storage.ITerminalHost; import appeng.client.gui.implementations.GuiCraftingStatus; import appeng.client.gui.widgets.GuiTabButton; + import com.glodblock.github.common.parts.PartFluidPatternTerminal; import com.glodblock.github.common.parts.PartFluidPatternTerminalEx; import com.glodblock.github.common.parts.PartFluidTerminal; @@ -10,9 +15,6 @@ import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.util.Ae2ReflectClient; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; public class GuiFluidPatternTerminalCraftingStatus extends GuiCraftingStatus { diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalEx.java index 052a83eb..39472059 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalEx.java @@ -1,17 +1,20 @@ package com.glodblock.github.client.gui; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.StatCollector; + +import org.lwjgl.input.Mouse; + import appeng.api.config.*; import appeng.api.storage.ITerminalHost; import appeng.client.gui.widgets.GuiImgButton; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.base.FCGuiEncodeTerminal; import com.glodblock.github.client.gui.container.ContainerFluidPatternTerminalEx; import com.glodblock.github.network.CPacketFluidPatternTermBtns; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.StatCollector; -import org.lwjgl.input.Mouse; public class GuiFluidPatternTerminalEx extends FCGuiEncodeTerminal { @@ -27,22 +30,34 @@ public class GuiFluidPatternTerminalEx extends FCGuiEncodeTerminal { super.initGui(); this.substitutionsEnabledBtn = new GuiImgButton( - this.guiLeft + 97, this.guiTop + this.ySize - 163, Settings.ACTIONS, ItemSubstitution.ENABLED); + this.guiLeft + 97, + this.guiTop + this.ySize - 163, + Settings.ACTIONS, + ItemSubstitution.ENABLED); this.substitutionsEnabledBtn.setHalfSize(true); this.buttonList.add(this.substitutionsEnabledBtn); this.substitutionsDisabledBtn = new GuiImgButton( - this.guiLeft + 97, this.guiTop + this.ySize - 163, Settings.ACTIONS, ItemSubstitution.DISABLED); + this.guiLeft + 97, + this.guiTop + this.ySize - 163, + Settings.ACTIONS, + ItemSubstitution.DISABLED); this.substitutionsDisabledBtn.setHalfSize(true); this.buttonList.add(this.substitutionsDisabledBtn); - this.fluidPrioritizedEnabledBtn = - new GuiFCImgButton(this.guiLeft + 97, this.guiTop + this.ySize - 114, "FORCE_PRIO", "DO_PRIO"); + this.fluidPrioritizedEnabledBtn = new GuiFCImgButton( + this.guiLeft + 97, + this.guiTop + this.ySize - 114, + "FORCE_PRIO", + "DO_PRIO"); this.fluidPrioritizedEnabledBtn.setHalfSize(true); this.buttonList.add(this.fluidPrioritizedEnabledBtn); - this.fluidPrioritizedDisabledBtn = - new GuiFCImgButton(this.guiLeft + 97, this.guiTop + this.ySize - 114, "NOT_PRIO", "DONT_PRIO"); + this.fluidPrioritizedDisabledBtn = new GuiFCImgButton( + this.guiLeft + 97, + this.guiTop + this.ySize - 114, + "NOT_PRIO", + "DONT_PRIO"); this.fluidPrioritizedDisabledBtn.setHalfSize(true); this.buttonList.add(this.fluidPrioritizedDisabledBtn); @@ -55,33 +70,51 @@ public class GuiFluidPatternTerminalEx extends FCGuiEncodeTerminal { this.buttonList.add(this.invertBtn); this.clearBtn = new GuiImgButton( - this.guiLeft + 87, this.guiTop + this.ySize - 163, Settings.ACTIONS, ActionItems.CLOSE); + this.guiLeft + 87, + this.guiTop + this.ySize - 163, + Settings.ACTIONS, + ActionItems.CLOSE); this.clearBtn.setHalfSize(true); this.buttonList.add(this.clearBtn); this.encodeBtn = new GuiImgButton( - this.guiLeft + 147, this.guiTop + this.ySize - 142, Settings.ACTIONS, ActionItems.ENCODE); + this.guiLeft + 147, + this.guiTop + this.ySize - 142, + Settings.ACTIONS, + ActionItems.ENCODE); this.buttonList.add(this.encodeBtn); if (ModAndClassUtil.isDoubleButton) { this.doubleBtn = new GuiImgButton( - this.guiLeft + 97, this.guiTop + this.ySize - 153, Settings.ACTIONS, ActionItems.DOUBLE); + this.guiLeft + 97, + this.guiTop + this.ySize - 153, + Settings.ACTIONS, + ActionItems.DOUBLE); this.doubleBtn.setHalfSize(true); this.buttonList.add(this.doubleBtn); } - this.combineEnableBtn = - new GuiFCImgButton(this.guiLeft + 87, this.guiTop + this.ySize - 114, "FORCE_COMBINE", "DO_COMBINE"); + this.combineEnableBtn = new GuiFCImgButton( + this.guiLeft + 87, + this.guiTop + this.ySize - 114, + "FORCE_COMBINE", + "DO_COMBINE"); this.combineEnableBtn.setHalfSize(true); this.buttonList.add(this.combineEnableBtn); - this.combineDisableBtn = - new GuiFCImgButton(this.guiLeft + 87, this.guiTop + this.ySize - 114, "NOT_COMBINE", "DONT_COMBINE"); + this.combineDisableBtn = new GuiFCImgButton( + this.guiLeft + 87, + this.guiTop + this.ySize - 114, + "NOT_COMBINE", + "DONT_COMBINE"); this.combineDisableBtn.setHalfSize(true); this.buttonList.add(this.combineDisableBtn); if (ModAndClassUtil.isBeSubstitutionsButton) { this.beSubstitutionsEnabledBtn = new GuiImgButton( - this.guiLeft + 87, this.guiTop + this.ySize - 103, Settings.ACTIONS, PatternBeSubstitution.ENABLED); + this.guiLeft + 87, + this.guiTop + this.ySize - 103, + Settings.ACTIONS, + PatternBeSubstitution.ENABLED); this.beSubstitutionsEnabledBtn.setHalfSize(true); this.buttonList.add(this.beSubstitutionsEnabledBtn); @@ -173,7 +206,9 @@ public class GuiFluidPatternTerminalEx extends FCGuiEncodeTerminal { } private void changeActivePage() { - FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns( - "PatternTerminal.ActivePage", String.valueOf(this.processingScrollBar.getCurrentScroll()))); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketFluidPatternTermBtns( + "PatternTerminal.ActivePage", + String.valueOf(this.processingScrollBar.getCurrentScroll()))); } } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPortableCell.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPortableCell.java index 11deb860..7f04ccde 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidPortableCell.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPortableCell.java @@ -1,9 +1,11 @@ package com.glodblock.github.client.gui; +import net.minecraft.entity.player.InventoryPlayer; + import appeng.container.slot.AppEngSlot; + import com.glodblock.github.client.gui.container.ContainerFluidPortableCell; import com.glodblock.github.inventory.item.IFluidPortableCell; -import net.minecraft.entity.player.InventoryPlayer; public class GuiFluidPortableCell extends GuiFluidTerminal { diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidStorageBus.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidStorageBus.java index cf87eb48..b36c4b66 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidStorageBus.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidStorageBus.java @@ -1,5 +1,11 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; + +import org.lwjgl.input.Mouse; + import appeng.api.config.AccessRestriction; import appeng.api.config.ActionItems; import appeng.api.config.Settings; @@ -11,6 +17,7 @@ import appeng.core.localization.GuiColors; import appeng.core.localization.GuiText; import appeng.core.sync.network.NetworkHandler; import appeng.core.sync.packets.PacketConfigButton; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerFluidStorageBus; import com.glodblock.github.common.parts.PartFluidStorageBus; @@ -18,10 +25,6 @@ import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.network.CPacketFluidPatternTermBtns; import com.glodblock.github.network.CPacketSwitchGuis; import com.glodblock.github.util.NameConst; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import org.lwjgl.input.Mouse; public class GuiFluidStorageBus extends GuiUpgradeable { @@ -40,10 +43,17 @@ public class GuiFluidStorageBus extends GuiUpgradeable { protected void addButtons() { this.clear = new GuiImgButton(this.guiLeft - 18, this.guiTop + 8, Settings.ACTIONS, ActionItems.CLOSE); this.partition = new GuiImgButton(this.guiLeft - 18, this.guiTop + 28, Settings.ACTIONS, ActionItems.WRENCH); - this.rwMode = - new GuiImgButton(this.guiLeft - 18, this.guiTop + 48, Settings.ACCESS, AccessRestriction.READ_WRITE); - this.priority = - new GuiTabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.getLocal(), itemRender); + this.rwMode = new GuiImgButton( + this.guiLeft - 18, + this.guiTop + 48, + Settings.ACCESS, + AccessRestriction.READ_WRITE); + this.priority = new GuiTabButton( + this.guiLeft + 154, + this.guiTop, + 2 + 4 * 16, + GuiText.Priority.getLocal(), + itemRender); this.buttonList.add(this.priority); this.buttonList.add(this.rwMode); @@ -59,7 +69,10 @@ public class GuiFluidStorageBus extends GuiUpgradeable { 6, GuiColors.StorageBusTitle.getColor()); this.fontRendererObj.drawString( - GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, GuiColors.StorageBusInventory.getColor()); + GuiText.inventory.getLocal(), + 8, + this.ySize - 96 + 3, + GuiColors.StorageBusInventory.getColor()); if (this.rwMode != null) { this.rwMode.set(((ContainerFluidStorageBus) this.cvb).getReadWriteMode()); diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidTerminal.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidTerminal.java index a5f33150..59549c32 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidTerminal.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidTerminal.java @@ -1,21 +1,8 @@ package com.glodblock.github.client.gui; -import appeng.api.storage.ITerminalHost; -import appeng.api.storage.data.IAEFluidStack; -import appeng.api.storage.data.IAEItemStack; -import appeng.client.me.SlotME; -import appeng.client.render.AppEngRenderItem; -import appeng.container.slot.AppEngSlot; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.client.gui.container.ContainerFluidMonitor; -import com.glodblock.github.common.item.ItemFluidDrop; -import com.glodblock.github.inventory.InventoryHandler; -import com.glodblock.github.inventory.gui.GuiType; -import com.glodblock.github.network.CPacketFluidUpdate; -import com.glodblock.github.util.Ae2ReflectClient; -import com.glodblock.github.util.Util; import java.util.HashMap; import java.util.Map; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.renderer.texture.TextureMap; @@ -25,9 +12,27 @@ import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; + import org.lwjgl.opengl.GL11; +import appeng.api.storage.ITerminalHost; +import appeng.api.storage.data.IAEFluidStack; +import appeng.api.storage.data.IAEItemStack; +import appeng.client.me.SlotME; +import appeng.client.render.AppEngRenderItem; +import appeng.container.slot.AppEngSlot; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.client.gui.container.ContainerFluidMonitor; +import com.glodblock.github.common.item.ItemFluidDrop; +import com.glodblock.github.inventory.InventoryHandler; +import com.glodblock.github.inventory.gui.GuiType; +import com.glodblock.github.network.CPacketFluidUpdate; +import com.glodblock.github.util.Ae2ReflectClient; +import com.glodblock.github.util.Util; + public class GuiFluidTerminal extends GuiFluidMonitor { + private final AppEngRenderItem stackSizeRenderer = Ae2ReflectClient.getStackSizeRenderer(this); protected EntityPlayer player; public ContainerFluidMonitor container; @@ -39,8 +44,8 @@ public class GuiFluidTerminal extends GuiFluidMonitor { this.showViewBtn = false; } - public GuiFluidTerminal( - final InventoryPlayer inventoryPlayer, final ITerminalHost te, final ContainerFluidMonitor c) { + public GuiFluidTerminal(final InventoryPlayer inventoryPlayer, final ITerminalHost te, + final ContainerFluidMonitor c) { super(inventoryPlayer, te, c); this.container = c; this.player = inventoryPlayer.player; diff --git a/src/main/java/com/glodblock/github/client/gui/GuiIngredientBuffer.java b/src/main/java/com/glodblock/github/client/gui/GuiIngredientBuffer.java index 63c154bb..43c040ad 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiIngredientBuffer.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiIngredientBuffer.java @@ -1,8 +1,17 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.util.ForgeDirection; + +import org.lwjgl.opengl.GL11; + import appeng.api.storage.data.IAEFluidStack; import appeng.client.gui.AEBaseGui; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerIngredientBuffer; import com.glodblock.github.common.tile.TileIngredientBuffer; @@ -12,12 +21,6 @@ import com.glodblock.github.inventory.gui.MouseRegionManager; import com.glodblock.github.inventory.gui.TankMouseHandler; import com.glodblock.github.util.NameConst; import com.glodblock.github.util.RenderUtil; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; -import org.lwjgl.opengl.GL11; public class GuiIngredientBuffer extends AEBaseGui { @@ -40,7 +43,11 @@ public class GuiIngredientBuffer extends AEBaseGui { TANK_HEIGHT, new TankMouseHandler(cont.getTile().getInternalFluid(), i)); mouseRegions.addRegion( - TANK_X + 10 + 22 * i, TANK_Y + TANK_HEIGHT + 2, 7, 7, ButtonMouseHandler.dumpTank(cont, i)); + TANK_X + 10 + 22 * i, + TANK_Y + TANK_HEIGHT + 2, + 7, + 7, + ButtonMouseHandler.dumpTank(cont, i)); } } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiItemMonitor.java b/src/main/java/com/glodblock/github/client/gui/GuiItemMonitor.java index af4336f4..4bacec6c 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiItemMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiItemMonitor.java @@ -1,16 +1,19 @@ package com.glodblock.github.client.gui; +import java.util.List; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; + import appeng.api.storage.ITerminalHost; import appeng.api.storage.data.IAEItemStack; import appeng.client.me.ItemRepo; import appeng.core.AEConfig; import appeng.core.localization.GuiText; + import com.glodblock.github.client.gui.base.FCGuiMonitor; import com.glodblock.github.client.gui.container.ContainerItemMonitor; import com.glodblock.github.util.ModAndClassUtil; -import java.util.List; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; public class GuiItemMonitor extends FCGuiMonitor { diff --git a/src/main/java/com/glodblock/github/client/gui/GuiLargeIngredientBuffer.java b/src/main/java/com/glodblock/github/client/gui/GuiLargeIngredientBuffer.java index 415b54c7..3940d88a 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiLargeIngredientBuffer.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiLargeIngredientBuffer.java @@ -1,8 +1,17 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.util.ForgeDirection; + +import org.lwjgl.opengl.GL11; + import appeng.api.storage.data.IAEFluidStack; import appeng.client.gui.AEBaseGui; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerLargeIngredientBuffer; import com.glodblock.github.common.tile.TileLargeIngredientBuffer; @@ -12,12 +21,6 @@ import com.glodblock.github.inventory.gui.MouseRegionManager; import com.glodblock.github.inventory.gui.TankMouseHandler; import com.glodblock.github.util.NameConst; import com.glodblock.github.util.RenderUtil; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; -import org.lwjgl.opengl.GL11; public class GuiLargeIngredientBuffer extends AEBaseGui { @@ -40,7 +43,11 @@ public class GuiLargeIngredientBuffer extends AEBaseGui { TANK_HEIGHT, new TankMouseHandler(cont.getTile().getInternalFluid(), i)); mouseRegions.addRegion( - TANK_X + 10 + 22 * i, TANK_Y + TANK_HEIGHT + 2, 7, 7, ButtonMouseHandler.dumpTank(cont, i)); + TANK_X + 10 + 22 * i, + TANK_Y + TANK_HEIGHT + 2, + 7, + 7, + ButtonMouseHandler.dumpTank(cont, i)); } } @@ -59,8 +66,8 @@ public class GuiLargeIngredientBuffer extends AEBaseGui { @Override public void drawFG(int offsetX, int offsetY, int mouseX, int mouseY) { - fontRendererObj.drawString( - getGuiDisplayName(I18n.format(NameConst.GUI_LARGE_INGREDIENT_BUFFER)), 8, 6, 0x404040); + fontRendererObj + .drawString(getGuiDisplayName(I18n.format(NameConst.GUI_LARGE_INGREDIENT_BUFFER)), 8, 6, 0x404040); fontRendererObj.drawString(GuiText.inventory.getLocal(), 8, ySize - 94, 0x404040); GL11.glColor4f(1F, 1F, 1F, 1F); diff --git a/src/main/java/com/glodblock/github/client/gui/GuiLevelMaintainer.java b/src/main/java/com/glodblock/github/client/gui/GuiLevelMaintainer.java index 552b1610..ea94077b 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiLevelMaintainer.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiLevelMaintainer.java @@ -1,5 +1,21 @@ package com.glodblock.github.client.gui; +import java.awt.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.input.Keyboard; + import appeng.api.storage.data.IAEItemStack; import appeng.client.gui.AEBaseGui; import appeng.client.render.AppEngRenderItem; @@ -10,6 +26,7 @@ import codechicken.nei.VisiblityData; import codechicken.nei.api.INEIGuiHandler; import codechicken.nei.api.TaggedInventoryArea; import cofh.core.render.CoFHFontRenderer; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerLevelMaintainer; import com.glodblock.github.common.tile.TileLevelMaintainer; @@ -20,19 +37,6 @@ import com.glodblock.github.network.CPacketLevelMaintainer; import com.glodblock.github.util.Ae2ReflectClient; import com.glodblock.github.util.NameConst; import cpw.mods.fml.common.Optional; -import java.awt.*; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.input.Keyboard; @Optional.Interface(modid = "NotEnoughItems", iface = "codechicken.nei.api.INEIGuiHandler") public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { @@ -146,8 +150,7 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { if (stack == null) return true; IAEItemStack fake = stack.copy(); if (this.component[slot.getSlotIndex()].getQty().textField.getText().matches("[0-9]+")) { - fake.setStackSize(Long.parseLong( - this.component[slot.getSlotIndex()].getQty().textField.getText())); + fake.setStackSize(Long.parseLong(this.component[slot.getSlotIndex()].getQty().textField.getText())); } else { fake.setStackSize(0); } @@ -209,9 +212,7 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { @Override protected void handleMouseClick(final Slot slot, final int slotIdx, final int ctrlDown, final int mouseButton) { if (slot instanceof SlotFluidConvertingFake && this.cont.getPlayerInv().getItemStack() != null) { - this.component[slot.getSlotIndex()] - .getQty() - .textField + this.component[slot.getSlotIndex()].getQty().textField .setText(String.valueOf(this.cont.getPlayerInv().getItemStack().stackSize)); return; } @@ -276,6 +277,7 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { } private class Component { + public boolean isEnable = true; private final Widget qty; private final Widget batch; @@ -285,14 +287,8 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { private final FCGuiLineField line; private TileLevelMaintainer.State state; - public Component( - Widget qtyInput, - Widget batchInput, - GuiFCImgButton submitBtn, - GuiFCImgButton enableBtn, - GuiFCImgButton disableBtn, - FCGuiLineField line, - List buttonList) { + public Component(Widget qtyInput, Widget batchInput, GuiFCImgButton submitBtn, GuiFCImgButton enableBtn, + GuiFCImgButton disableBtn, FCGuiLineField line, List buttonList) { this.qty = qtyInput; this.batch = batchInput; this.enable = enableBtn; @@ -315,8 +311,7 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { private boolean send(Widget widget) { if (((SlotFluidConvertingFake) cont.inventorySlots.get(widget.idx)).getHasStack()) { - if (!widget.textField.getText().isEmpty() - && widget.textField.getText().matches("^[0-9]+")) { + if (!widget.textField.getText().isEmpty() && widget.textField.getText().matches("^[0-9]+")) { String str = widget.textField.getText().replaceAll("^(0+)", ""); widget.textField.setText(str.isEmpty() ? "0" : str); FluidCraft.proxy.netHandler.sendToServer( @@ -337,12 +332,12 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { if (this.send(this.getQty())) this.send(this.getBatch()); didSomething = true; } else if (this.enable == btn) { - FluidCraft.proxy.netHandler.sendToServer( - new CPacketLevelMaintainer("TileLevelMaintainer.Enable", this.getIndex())); + FluidCraft.proxy.netHandler + .sendToServer(new CPacketLevelMaintainer("TileLevelMaintainer.Enable", this.getIndex())); didSomething = true; } else if (this.disable == btn) { - FluidCraft.proxy.netHandler.sendToServer( - new CPacketLevelMaintainer("TileLevelMaintainer.Disable", this.getIndex())); + FluidCraft.proxy.netHandler + .sendToServer(new CPacketLevelMaintainer("TileLevelMaintainer.Disable", this.getIndex())); didSomething = true; } return didSomething; @@ -374,23 +369,27 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { switch (this.state) { case Idling: this.line.setColor(0xFF55FF55); - message.add(NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_CURRENT) - + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_IDLE)); + message.add( + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_CURRENT) + + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_IDLE)); break; case Crafting: this.line.setColor(0xFFFFFF55); - message.add(NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_CURRENT) - + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_LINK)); + message.add( + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_CURRENT) + + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_LINK)); break; case Exporting: this.line.setColor(0xFFAA00AA); - message.add(NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_CURRENT) - + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_EXPORT)); + message.add( + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_CURRENT) + + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_EXPORT)); break; default: this.line.setColor(0); - message.add(NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_CURRENT) - + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_NONE)); + message.add( + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_CURRENT) + + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_NONE)); } message.add(""); if (isShiftKeyDown()) { @@ -421,6 +420,7 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { } private class Widget { + public final int idx; public final String action; private final FCGuiTextField textField; @@ -440,9 +440,11 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { if (isShiftKeyDown()) { this.setTooltip(render.wrapFormattedStringToWidth(NameConst.i18n(this.tooltip), xSize / 2)); } else { - this.setTooltip(render.wrapFormattedStringToWidth( - NameConst.i18n(this.tooltip, "\n", false) + "\n" + NameConst.i18n(NameConst.TT_SHIFT_FOR_MORE), - (int) Math.floor(xSize * 0.8))); + this.setTooltip( + render.wrapFormattedStringToWidth( + NameConst.i18n(this.tooltip, "\n", false) + "\n" + + NameConst.i18n(NameConst.TT_SHIFT_FOR_MORE), + (int) Math.floor(xSize * 0.8))); } this.textField.drawTextBox(); } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiOCPatternEditor.java b/src/main/java/com/glodblock/github/client/gui/GuiOCPatternEditor.java index 26a75fbd..3b38081a 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiOCPatternEditor.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiOCPatternEditor.java @@ -1,14 +1,16 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + import appeng.client.gui.AEBaseGui; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerOCPatternEditor; import com.glodblock.github.common.tile.TileOCPatternEditor; import com.glodblock.github.util.NameConst; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; public class GuiOCPatternEditor extends AEBaseGui { diff --git a/src/main/java/com/glodblock/github/client/gui/GuiPatternValueAmount.java b/src/main/java/com/glodblock/github/client/gui/GuiPatternValueAmount.java index 0b55a291..c415670f 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiPatternValueAmount.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiPatternValueAmount.java @@ -1,7 +1,12 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; + import appeng.api.storage.ITerminalHost; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.base.FCGuiAmount; import com.glodblock.github.client.gui.container.ContainerPatternValueAmount; @@ -10,9 +15,6 @@ import com.glodblock.github.common.parts.PartFluidPatternTerminalEx; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.network.CPacketPatternValueSet; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; public class GuiPatternValueAmount extends FCGuiAmount { @@ -48,10 +50,11 @@ public class GuiPatternValueAmount extends FCGuiAmount { super.actionPerformed(btn); try { if (btn == this.submit && btn.enabled) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketPatternValueSet( - originalGui.ordinal(), - getAmount(), - ((ContainerPatternValueAmount) this.inventorySlots).getValueIndex())); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketPatternValueSet( + originalGui.ordinal(), + getAmount(), + ((ContainerPatternValueAmount) this.inventorySlots).getValueIndex())); } } catch (final NumberFormatException e) { this.amountBox.setText("1"); diff --git a/src/main/java/com/glodblock/github/client/gui/base/FCGuiAmount.java b/src/main/java/com/glodblock/github/client/gui/base/FCGuiAmount.java index 64cf6c38..65eb25f8 100644 --- a/src/main/java/com/glodblock/github/client/gui/base/FCGuiAmount.java +++ b/src/main/java/com/glodblock/github/client/gui/base/FCGuiAmount.java @@ -1,5 +1,10 @@ package com.glodblock.github.client.gui.base; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; + import appeng.client.gui.AEBaseGui; import appeng.client.gui.widgets.GuiTabButton; import appeng.container.AEBaseContainer; @@ -7,13 +12,10 @@ import appeng.core.AEConfig; import appeng.core.localization.GuiText; import appeng.util.calculators.ArithHelper; import appeng.util.calculators.Calculator; + import com.glodblock.github.FluidCraft; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.network.CPacketSwitchGuis; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiTextField; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; public abstract class FCGuiAmount extends AEBaseGui { @@ -61,11 +63,19 @@ public abstract class FCGuiAmount extends AEBaseGui { if (this.originalGui != null && this.myIcon != null) { this.buttonList.add( this.originalGuiBtn = new GuiTabButton( - this.guiLeft + 154, this.guiTop, this.myIcon, this.myIcon.getDisplayName(), itemRender)); + this.guiLeft + 154, + this.guiTop, + this.myIcon, + this.myIcon.getDisplayName(), + itemRender)); } this.amountBox = new GuiTextField( - this.fontRendererObj, this.guiLeft + 62, this.guiTop + 57, 59, this.fontRendererObj.FONT_HEIGHT); + this.fontRendererObj, + this.guiLeft + 62, + this.guiTop + 57, + 59, + this.fontRendererObj.FONT_HEIGHT); this.amountBox.setEnableBackgroundDrawing(false); this.amountBox.setMaxStringLength(16); this.amountBox.setTextColor(0xFFFFFF); @@ -97,8 +107,9 @@ public abstract class FCGuiAmount extends AEBaseGui { FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(this.originalGui)); } final boolean isPlus = btn == this.plus1 || btn == this.plus10 || btn == this.plus100 || btn == this.plus1000; - final boolean isMinus = - btn == this.minus1 || btn == this.minus10 || btn == this.minus100 || btn == this.minus1000; + final boolean isMinus = btn == this.minus1 || btn == this.minus10 + || btn == this.minus100 + || btn == this.minus1000; if (isPlus || isMinus) { this.addQty(this.getQty(btn)); @@ -117,8 +128,7 @@ public abstract class FCGuiAmount extends AEBaseGui { } String out = Long.toString(resultI); this.amountBox.setText(out); - } catch (final NumberFormatException ignore) { - } + } catch (final NumberFormatException ignore) {} } protected abstract void setOriginGUI(Object target); diff --git a/src/main/java/com/glodblock/github/client/gui/base/FCGuiEncodeTerminal.java b/src/main/java/com/glodblock/github/client/gui/base/FCGuiEncodeTerminal.java index 9ed9a69a..289afee7 100644 --- a/src/main/java/com/glodblock/github/client/gui/base/FCGuiEncodeTerminal.java +++ b/src/main/java/com/glodblock/github/client/gui/base/FCGuiEncodeTerminal.java @@ -1,5 +1,11 @@ package com.glodblock.github.client.gui.base; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; + +import org.lwjgl.input.Keyboard; + import appeng.api.storage.ITerminalHost; import appeng.api.storage.data.IAEItemStack; import appeng.client.gui.widgets.GuiImgButton; @@ -9,6 +15,7 @@ import appeng.client.render.AppEngRenderItem; import appeng.container.slot.AppEngSlot; import appeng.container.slot.SlotFake; import appeng.util.item.AEItemStack; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.GuiFCImgButton; import com.glodblock.github.client.gui.GuiItemMonitor; @@ -20,10 +27,6 @@ import com.glodblock.github.inventory.slot.SlotSingleItem; import com.glodblock.github.network.CPacketFluidPatternTermBtns; import com.glodblock.github.util.Ae2ReflectClient; import com.glodblock.github.util.ModAndClassUtil; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; -import org.lwjgl.input.Keyboard; public abstract class FCGuiEncodeTerminal extends GuiItemMonitor { @@ -51,8 +54,8 @@ public abstract class FCGuiEncodeTerminal extends GuiItemMonitor { protected final GuiScrollbar processingScrollBar = new GuiScrollbar(); protected final AppEngRenderItem stackSizeRenderer = Ae2ReflectClient.getStackSizeRenderer(this); - public FCGuiEncodeTerminal( - final InventoryPlayer inventoryPlayer, final ITerminalHost te, final FCContainerEncodeTerminal c) { + public FCGuiEncodeTerminal(final InventoryPlayer inventoryPlayer, final ITerminalHost te, + final FCContainerEncodeTerminal c) { super(inventoryPlayer, te, c); this.container = (FCContainerEncodeTerminal) this.inventorySlots; c.setGui(this); @@ -65,35 +68,46 @@ public abstract class FCGuiEncodeTerminal extends GuiItemMonitor { if (btn == craftingStatusBtn) { InventoryHandler.switchGui(GuiType.CRAFTING_STATUS); } else if (this.tabCraftButton == btn || this.tabProcessButton == btn) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns( - "PatternTerminal.CraftMode", this.tabProcessButton == btn ? MODE_CRAFTING : MODE_PROCESSING)); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketFluidPatternTermBtns( + "PatternTerminal.CraftMode", + this.tabProcessButton == btn ? MODE_CRAFTING : MODE_PROCESSING)); } else if (this.encodeBtn == btn) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns( - "PatternTerminal.Encode", (isCtrlKeyDown() ? 1 : 0) << 1 | (isShiftKeyDown() ? 1 : 0))); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketFluidPatternTermBtns( + "PatternTerminal.Encode", + (isCtrlKeyDown() ? 1 : 0) << 1 | (isShiftKeyDown() ? 1 : 0))); } else if (this.clearBtn == btn) { FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns("PatternTerminal.Clear", "1")); } else if (this.substitutionsEnabledBtn == btn || this.substitutionsDisabledBtn == btn) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns( - "PatternTerminal.Substitute", - this.substitutionsEnabledBtn == btn ? SUBSTITUTION_DISABLE : SUBSTITUTION_ENABLE)); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketFluidPatternTermBtns( + "PatternTerminal.Substitute", + this.substitutionsEnabledBtn == btn ? SUBSTITUTION_DISABLE : SUBSTITUTION_ENABLE)); } else if (this.fluidPrioritizedEnabledBtn == btn || this.fluidPrioritizedDisabledBtn == btn) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns( - "PatternTerminal.Prioritize", container.prioritize ? PRIORITY_DISABLE : PRIORITY_ENABLE)); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketFluidPatternTermBtns( + "PatternTerminal.Prioritize", + container.prioritize ? PRIORITY_DISABLE : PRIORITY_ENABLE)); } else if (this.invertBtn == btn) { FluidCraft.proxy.netHandler.sendToServer( new CPacketFluidPatternTermBtns("PatternTerminal.Invert", container.inverted ? "0" : "1")); } else if (this.combineDisableBtn == btn || this.combineEnableBtn == btn) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns( - "PatternTerminal.Combine", this.combineDisableBtn == btn ? "1" : "0")); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketFluidPatternTermBtns( + "PatternTerminal.Combine", + this.combineDisableBtn == btn ? "1" : "0")); } else if (ModAndClassUtil.isDoubleButton && doubleBtn == btn) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns( - "PatternTerminal.Double", Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) ? "1" : "0")); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketFluidPatternTermBtns( + "PatternTerminal.Double", + Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) ? "1" : "0")); } else if (ModAndClassUtil.isBeSubstitutionsButton && beSubstitutionsDisabledBtn == btn) { - FluidCraft.proxy.netHandler.sendToServer( - new CPacketFluidPatternTermBtns("PatternTerminal.beSubstitute", "1")); + FluidCraft.proxy.netHandler + .sendToServer(new CPacketFluidPatternTermBtns("PatternTerminal.beSubstitute", "1")); } else if (ModAndClassUtil.isBeSubstitutionsButton && beSubstitutionsEnabledBtn == btn) { - FluidCraft.proxy.netHandler.sendToServer( - new CPacketFluidPatternTermBtns("PatternTerminal.beSubstitute", "0")); + FluidCraft.proxy.netHandler + .sendToServer(new CPacketFluidPatternTermBtns("PatternTerminal.beSubstitute", "0")); } } diff --git a/src/main/java/com/glodblock/github/client/gui/base/FCGuiMonitor.java b/src/main/java/com/glodblock/github/client/gui/base/FCGuiMonitor.java index a7a83f43..028e8e30 100644 --- a/src/main/java/com/glodblock/github/client/gui/base/FCGuiMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/base/FCGuiMonitor.java @@ -1,5 +1,20 @@ package com.glodblock.github.client.gui.base; +import java.io.IOException; +import java.lang.reflect.Field; +import java.util.List; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; + import appeng.api.config.*; import appeng.api.implementations.tiles.IViewCellStorage; import appeng.api.storage.ITerminalHost; @@ -32,24 +47,13 @@ import appeng.util.Platform; import appeng.util.item.AEItemStack; import codechicken.nei.LayoutManager; import codechicken.nei.util.TextHistory; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.FCGuiTextField; import com.glodblock.github.client.gui.container.base.FCContainerMonitor; import com.glodblock.github.network.CPacketInventoryAction; import com.glodblock.github.util.Ae2ReflectClient; import com.glodblock.github.util.ModAndClassUtil; -import java.io.IOException; -import java.lang.reflect.Field; -import java.util.List; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.input.Keyboard; -import org.lwjgl.input.Mouse; public abstract class FCGuiMonitor> extends AEBaseMEGui implements ISortSource, IConfigManagerHost, IDropToFillTextField { @@ -98,9 +102,10 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui protected void setScrollBar() { this.getScrollBar().setTop(18).setLeft(175).setHeight(this.rows * 18 - 2); - this.getScrollBar() - .setRange( - 0, (this.repo.size() + this.perRow - 1) / this.perRow - this.rows, Math.max(1, this.rows / 6)); + this.getScrollBar().setRange( + 0, + (this.repo.size() + this.perRow - 1) / this.perRow - this.rows, + Math.max(1, this.rows / 6)); } @Override @@ -114,8 +119,7 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui final GuiImgButton iBtn = (GuiImgButton) btn; if (iBtn.getSetting() != Settings.ACTIONS) { final Enum cv = iBtn.getCurrentValue(); - final Enum next = - Platform.rotateEnum(cv, backwards, iBtn.getSetting().getPossibleValues()); + final Enum next = Platform.rotateEnum(cv, backwards, iBtn.getSetting().getPossibleValues()); if (btn == this.terminalStyleBox) { AEConfig.instance.settings.putSetting(iBtn.getSetting(), next); } else if (btn == this.searchBoxSettings) { @@ -124,8 +128,8 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui AEConfig.instance.preserveSearchBar = next == YesNo.YES; } else { try { - NetworkHandler.instance.sendToServer( - new PacketValueConfig(iBtn.getSetting().name(), next.name())); + NetworkHandler.instance + .sendToServer(new PacketValueConfig(iBtn.getSetting().name(), next.name())); } catch (final IOException e) { AELog.debug(e); } @@ -149,8 +153,7 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui Keyboard.enableRepeatEvents(true); this.maxRows = this.getMaxRows(); - this.perRow = AEConfig.instance.getConfigManager().getSetting(Settings.TERMINAL_STYLE) != TerminalStyle.FULL - ? 9 + this.perRow = AEConfig.instance.getConfigManager().getSetting(Settings.TERMINAL_STYLE) != TerminalStyle.FULL ? 9 : 9 + ((this.width - this.standardSize) / 18); final boolean hasNEI = IntegrationRegistry.INSTANCE.isEnabled(IntegrationType.NEI); @@ -202,7 +205,10 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui if (this.customSortOrder) { this.buttonList.add( this.SortByBox = new GuiImgButton( - this.guiLeft - 18, offset, Settings.SORT_BY, this.configSrc.getSetting(Settings.SORT_BY))); + this.guiLeft - 18, + offset, + Settings.SORT_BY, + this.configSrc.getSetting(Settings.SORT_BY))); offset += 20; } if (this.showViewBtn) { @@ -250,7 +256,11 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui offset += 20; this.searchField = new FCGuiTextField( - this.fontRendererObj, this.guiLeft + Math.max(80, this.offsetX), this.guiTop + 4, 90, 12); + this.fontRendererObj, + this.guiLeft + Math.max(80, this.offsetX), + this.guiTop + 4, + 90, + 12); this.searchField.setEnableBackgroundDrawing(false); this.searchField.setMaxStringLength(25); this.searchField.setTextColor(0xFFFFFF); @@ -259,11 +269,8 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui searchField.setMessage(ButtonToolTips.SearchStringTooltip.getLocal()); if (this.viewCell) { - if (ModAndClassUtil.isCraftStatus - && AEConfig.instance - .getConfigManager() - .getSetting(Settings.CRAFTING_STATUS) - .equals(CraftingStatus.BUTTON)) { + if (ModAndClassUtil.isCraftStatus && AEConfig.instance.getConfigManager() + .getSetting(Settings.CRAFTING_STATUS).equals(CraftingStatus.BUTTON)) { this.buttonList.add( this.craftingStatusImgBtn = new GuiImgButton( this.guiLeft - 18, @@ -356,15 +363,12 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui } else { direction = TextHistory.Direction.NEXT; } - history.get(direction, this.searchField.getText()) - .map(newText -> { - setSearchString(newText, true); - return true; - }) - .orElse(false); + history.get(direction, this.searchField.getText()).map(newText -> { + setSearchString(newText, true); + return true; + }).orElse(false); return; - } catch (NoSuchFieldException | IllegalAccessException ignore) { - } + } catch (NoSuchFieldException | IllegalAccessException ignore) {} } } super.handleMouseInput(); @@ -391,8 +395,8 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui } if (slot instanceof SlotFake) { - InventoryAction action = - ctrlDown == 1 ? InventoryAction.SPLIT_OR_PLACE_SINGLE : InventoryAction.PICKUP_OR_SET_DOWN; + InventoryAction action = ctrlDown == 1 ? InventoryAction.SPLIT_OR_PLACE_SINGLE + : InventoryAction.PICKUP_OR_SET_DOWN; if (Keyboard.isKeyDown(Keyboard.KEY_LMENU) || Keyboard.isKeyDown(Keyboard.KEY_RMENU)) { if (action == InventoryAction.SPLIT_OR_PLACE_SINGLE) { action = InventoryAction.MOVE_REGION; @@ -457,13 +461,12 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui InventoryAction action = null; switch (mouseButton) { case 0: // pickup / set-down. - { - ItemStack heldStack = player.inventory.getItemStack(); - if (slot.getStack() == null && heldStack != null) - action = InventoryAction.SPLIT_OR_PLACE_SINGLE; - else if (slot.getStack() != null && (heldStack == null || heldStack.stackSize <= 1)) - action = InventoryAction.PICKUP_OR_SET_DOWN; - } + { + ItemStack heldStack = player.inventory.getItemStack(); + if (slot.getStack() == null && heldStack != null) action = InventoryAction.SPLIT_OR_PLACE_SINGLE; + else if (slot.getStack() != null && (heldStack == null || heldStack.stackSize <= 1)) + action = InventoryAction.PICKUP_OR_SET_DOWN; + } break; case 1: action = ctrlDown == 1 ? InventoryAction.PICKUP_SINGLE : InventoryAction.SHIFT_CLICK; @@ -494,8 +497,7 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui case 0: // pickup / set-down. action = ctrlDown == 1 ? InventoryAction.SPLIT_OR_PLACE_SINGLE : InventoryAction.PICKUP_OR_SET_DOWN; stack = ((SlotME) slot).getAEStack(); - if (stack != null - && action == InventoryAction.PICKUP_OR_SET_DOWN + if (stack != null && action == InventoryAction.PICKUP_OR_SET_DOWN && stack.getStackSize() == 0 && player.inventory.getItemStack() == null) { action = InventoryAction.AUTO_CRAFT; @@ -523,12 +525,14 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui } if (action == InventoryAction.AUTO_CRAFT) { ((AEBaseContainer) this.inventorySlots).setTargetStack(stack); - FluidCraft.proxy.netHandler.sendToServer(new CPacketInventoryAction( - action, Ae2ReflectClient.getInventorySlots(this).size(), 0, stack)); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketInventoryAction(action, Ae2ReflectClient.getInventorySlots(this).size(), 0, stack)); } else if (action != null) { ((AEBaseContainer) this.inventorySlots).setTargetStack(stack); final PacketInventoryAction p = new PacketInventoryAction( - action, Ae2ReflectClient.getInventorySlots(this).size(), 0); + action, + Ae2ReflectClient.getInventorySlots(this).size(), + 0); NetworkHandler.instance.sendToServer(p); } @@ -575,11 +579,9 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui if (this.viewCell) { boolean update = false; for (int i = 0; i < 5; i++) { - if (this.myCurrentViewCells[i] - != this.monitorableContainer.getCellViewSlot(i).getStack()) { + if (this.myCurrentViewCells[i] != this.monitorableContainer.getCellViewSlot(i).getStack()) { update = true; - this.myCurrentViewCells[i] = - this.monitorableContainer.getCellViewSlot(i).getStack(); + this.myCurrentViewCells[i] = this.monitorableContainer.getCellViewSlot(i).getStack(); } } if (update) { @@ -601,8 +603,7 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui } protected int getMaxRows() { - return AEConfig.instance.getConfigManager().getSetting(Settings.TERMINAL_STYLE) == TerminalStyle.SMALL - ? 6 + return AEConfig.instance.getConfigManager().getSetting(Settings.TERMINAL_STYLE) == TerminalStyle.SMALL ? 6 : Integer.MAX_VALUE; } diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerDualInterface.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerDualInterface.java index 181381dd..5dd30cbf 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerDualInterface.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerDualInterface.java @@ -1,13 +1,15 @@ package com.glodblock.github.client.gui.container; +import net.minecraft.entity.player.InventoryPlayer; + import appeng.api.config.Settings; import appeng.api.config.SidelessMode; import appeng.api.util.IConfigManager; import appeng.container.guisync.GuiSync; import appeng.container.implementations.ContainerInterface; import appeng.helpers.IInterfaceHost; + import com.glodblock.github.common.tile.TileFluidInterface; -import net.minecraft.entity.player.InventoryPlayer; public class ContainerDualInterface extends ContainerInterface { diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidCraftConfirm.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidCraftConfirm.java index ba552dba..1ab648bc 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidCraftConfirm.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidCraftConfirm.java @@ -1,5 +1,19 @@ package com.glodblock.github.client.gui.container; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Objects; +import java.util.concurrent.Future; + +import javax.annotation.Nonnull; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.util.ChatComponentText; +import net.minecraft.world.World; + import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.SecurityPermissions; @@ -21,6 +35,7 @@ import appeng.container.guisync.GuiSync; import appeng.container.implementations.CraftingCPURecord; import appeng.core.AELog; import appeng.util.Platform; + import com.glodblock.github.FluidCraft; import com.glodblock.github.common.parts.PartFluidPatternTerminal; import com.glodblock.github.common.parts.PartFluidPatternTerminalEx; @@ -30,17 +45,6 @@ import com.glodblock.github.network.SPacketMEInventoryUpdate; import com.glodblock.github.util.Ae2Reflect; import com.glodblock.github.util.BlockPos; import com.google.common.collect.ImmutableSet; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Objects; -import java.util.concurrent.Future; -import javax.annotation.Nonnull; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ICrafting; -import net.minecraft.util.ChatComponentText; -import net.minecraft.world.World; public class ContainerFluidCraftConfirm extends AEBaseContainer { @@ -162,8 +166,8 @@ public class ContainerFluidCraftConfirm extends AEBaseContainer { final SPacketMEInventoryUpdate a = new SPacketMEInventoryUpdate((byte) 0); final SPacketMEInventoryUpdate b = new SPacketMEInventoryUpdate((byte) 1); - final SPacketMEInventoryUpdate c = - this.result.isSimulation() ? new SPacketMEInventoryUpdate((byte) 2) : null; + final SPacketMEInventoryUpdate c = this.result.isSimulation() ? new SPacketMEInventoryUpdate((byte) 2) + : null; final IItemList plan = AEApi.instance().storage().createItemList(); this.result.populatePlan(plan); diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidIO.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidIO.java index 3b09273a..0efe9383 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidIO.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidIO.java @@ -1,16 +1,19 @@ package com.glodblock.github.client.gui.container; +import net.minecraft.entity.player.InventoryPlayer; + import appeng.api.config.Settings; import appeng.api.config.YesNo; import appeng.api.util.IConfigManager; import appeng.tile.inventory.AppEngInternalAEInventory; + import com.glodblock.github.client.gui.container.base.FCContainerFluidConfigurable; import com.glodblock.github.common.parts.PartFluidExportBus; import com.glodblock.github.common.parts.base.FCSharedFluidBus; import com.glodblock.github.util.Ae2Reflect; -import net.minecraft.entity.player.InventoryPlayer; public class ContainerFluidIO extends FCContainerFluidConfigurable { + private final FCSharedFluidBus bus; public ContainerFluidIO(InventoryPlayer ip, FCSharedFluidBus te) { diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidInterface.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidInterface.java index 4998e57e..5bf5dcc4 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidInterface.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidInterface.java @@ -1,20 +1,23 @@ package com.glodblock.github.client.gui.container; +import java.util.HashMap; +import java.util.Map; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; + import appeng.api.storage.data.IAEFluidStack; import appeng.container.AEBaseContainer; import appeng.container.slot.IOptionalSlotHost; import appeng.util.item.AEFluidStack; + import com.glodblock.github.FluidCraft; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.IDualHost; import com.glodblock.github.inventory.slot.OptionalFluidSlotFakeTypeOnly; import com.glodblock.github.network.SPacketFluidUpdate; -import java.util.HashMap; -import java.util.Map; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; public class ContainerFluidInterface extends AEBaseContainer implements IOptionalSlotHost { @@ -27,8 +30,8 @@ public class ContainerFluidInterface extends AEBaseContainer implements IOptiona final int y = 35; final int x = 35; for (int i = 0; i < 6; i++) { - addSlotToContainer(new OptionalFluidSlotFakeTypeOnly( - inv, tile.getDualityFluid().getConfig(), this, i, x, y, i, 0, 0)); + addSlotToContainer( + new OptionalFluidSlotFakeTypeOnly(inv, tile.getDualityFluid().getConfig(), this, i, x, y, i, 0, 0)); } bindPlayerInventory(ipl, 0, 149); } @@ -50,10 +53,7 @@ public class ContainerFluidInterface extends AEBaseContainer implements IOptiona tmp.put(i, tile.getInternalFluid().getFluidInSlot(i)); } for (int i = 0; i < tile.getConfig().getSizeInventory(); i++) { - tmp.put( - i + 100, - AEFluidStack.create( - ItemFluidPacket.getFluidStack(tile.getConfig().getStackInSlot(i)))); + tmp.put(i + 100, AEFluidStack.create(ItemFluidPacket.getFluidStack(tile.getConfig().getStackInSlot(i)))); } for (final Object g : this.crafters) { if (g instanceof EntityPlayer) { diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidLevelEmitter.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidLevelEmitter.java index e4dcdcb9..f6a82218 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidLevelEmitter.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidLevelEmitter.java @@ -1,22 +1,26 @@ package com.glodblock.github.client.gui.container; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; + import appeng.api.config.*; import appeng.api.implementations.IUpgradeableHost; import appeng.container.guisync.GuiSync; import appeng.tile.inventory.AppEngInternalAEInventory; import appeng.util.Platform; + import com.glodblock.github.client.gui.container.base.FCContainerFluidConfigurable; import com.glodblock.github.common.parts.PartFluidLevelEmitter; import com.glodblock.github.inventory.slot.OptionalFluidSlotFakeTypeOnly; import com.glodblock.github.util.Ae2Reflect; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiTextField; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; public class ContainerFluidLevelEmitter extends FCContainerFluidConfigurable { + private final PartFluidLevelEmitter lvlEmitter; @SideOnly(Side.CLIENT) @@ -81,8 +85,9 @@ public class ContainerFluidLevelEmitter extends FCContainerFluidConfigurable { if (Platform.isServer()) { this.EmitterValue = this.lvlEmitter.getReportingValue(); - this.setRedStoneMode((RedstoneMode) - Ae2Reflect.getUpgradeableHost(this).getConfigManager().getSetting(Settings.REDSTONE_EMITTER)); + this.setRedStoneMode( + (RedstoneMode) Ae2Reflect.getUpgradeableHost(this).getConfigManager() + .getSetting(Settings.REDSTONE_EMITTER)); } this.standardDetectAndSendChanges(); diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidMonitor.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidMonitor.java index 40520d50..201f6095 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidMonitor.java @@ -1,5 +1,21 @@ package com.glodblock.github.client.gui.container; +import java.nio.BufferOverflowException; +import java.util.HashMap; +import java.util.Map; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.IFluidContainerItem; + +import org.apache.commons.lang3.tuple.MutablePair; + import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.implementations.guiobjects.IPortableCell; @@ -22,6 +38,7 @@ import appeng.me.helpers.ChannelPowerSrc; import appeng.util.Platform; import appeng.util.item.AEFluidStack; import appeng.util.item.AEItemStack; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.base.FCContainerMonitor; import com.glodblock.github.common.item.ItemFluidDrop; @@ -30,29 +47,17 @@ import com.glodblock.github.network.CPacketFluidUpdate; import com.glodblock.github.network.SPacketFluidUpdate; import com.glodblock.github.network.SPacketMEInventoryUpdate; import com.glodblock.github.util.Util; -import java.nio.BufferOverflowException; -import java.util.HashMap; -import java.util.Map; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.IFluidContainerItem; -import org.apache.commons.lang3.tuple.MutablePair; public class ContainerFluidMonitor extends FCContainerMonitor { + private final IItemList fluids = AEApi.instance().storage().createFluidList(); public ContainerFluidMonitor(final InventoryPlayer ip, final ITerminalHost monitorable) { this(ip, monitorable, true); } - protected ContainerFluidMonitor( - final InventoryPlayer ip, final ITerminalHost monitorable, final boolean bindInventory) { + protected ContainerFluidMonitor(final InventoryPlayer ip, final ITerminalHost monitorable, + final boolean bindInventory) { super(ip, monitorable, bindInventory); if (Platform.isServer()) { this.serverCM = monitorable.getConfigManager(); @@ -106,8 +111,7 @@ public class ContainerFluidMonitor extends FCContainerMonitor { public ItemStack transferStackInSlot(final EntityPlayer p, final int idx) { if (Platform.isClient()) { Slot clickSlot = (Slot) this.inventorySlots.get(idx); - if ((clickSlot instanceof SlotPlayerInv || clickSlot instanceof SlotPlayerHotBar) - && clickSlot.getHasStack() + if ((clickSlot instanceof SlotPlayerInv || clickSlot instanceof SlotPlayerHotBar) && clickSlot.getHasStack() && Util.FluidUtil.isFluidContainer(clickSlot.getStack())) { ItemStack tis = clickSlot.getStack(); Map tmp = new HashMap<>(); @@ -172,8 +176,8 @@ public class ContainerFluidMonitor extends FCContainerMonitor { } @Override - public void postChange( - IBaseMonitor monitor, Iterable change, BaseActionSource actionSource) { + public void postChange(IBaseMonitor monitor, Iterable change, + BaseActionSource actionSource) { for (final IAEFluidStack is : change) { this.fluids.add(is); } @@ -207,8 +211,8 @@ public class ContainerFluidMonitor extends FCContainerMonitor { this.dropItem(is); } - public void postChange( - Iterable change, ItemStack fluidContainer, EntityPlayer player, int slotIndex) { + public void postChange(Iterable change, ItemStack fluidContainer, EntityPlayer player, + int slotIndex) { for (IAEFluidStack fluid : change) { IAEFluidStack nfluid = this.monitor.getStorageList().findPrecise(fluid); ItemStack out = fluidContainer.copy(); @@ -220,8 +224,7 @@ public class ContainerFluidMonitor extends FCContainerMonitor { MutablePair fillStack = Util.FluidUtil.fillStack(out, toExtract.getFluidStack()); if (fillStack.right == null || fillStack.left <= 0) continue; toExtract.setStackSize((long) fillStack.left * fluidContainer.stackSize); - IAEFluidStack tmp = this.host - .getFluidInventory() + IAEFluidStack tmp = this.host.getFluidInventory() .extractItems(toExtract, Actionable.SIMULATE, this.getActionSource()); if (tmp == null) continue; fillStack.right.stackSize = (int) (tmp.getStackSize() / fillStack.left); @@ -232,7 +235,8 @@ public class ContainerFluidMonitor extends FCContainerMonitor { if ((int) (tmp.getStackSize() % fillStack.left) > 0) { this.dropItem( Util.FluidUtil.setFluidContainerAmount( - fillStack.right, (int) (tmp.getStackSize() % fillStack.left)), + fillStack.right, + (int) (tmp.getStackSize() % fillStack.left)), 1); out.stackSize++; } @@ -245,11 +249,10 @@ public class ContainerFluidMonitor extends FCContainerMonitor { AEFluidStack fluidStack = Util.getAEFluidFromItem(fluidContainer); final IAEFluidStack aeFluidStack = fluidStack.copy(); // simulate result is incorrect. so I'm using other solution and ec2 both mod have same issues - final IAEFluidStack notInserted = this.host - .getFluidInventory() + final IAEFluidStack notInserted = this.host.getFluidInventory() .injectItems(aeFluidStack, Actionable.MODULATE, this.getActionSource()); - MutablePair drainStack = - Util.FluidUtil.drainStack(out.copy(), aeFluidStack.getFluidStack()); + MutablePair drainStack = Util.FluidUtil + .drainStack(out.copy(), aeFluidStack.getFluidStack()); if (notInserted != null && notInserted.getStackSize() > 0) { if (fluidStack.getStackSize() == notInserted.getStackSize()) continue; aeFluidStack.decStackSize(notInserted.getStackSize()); @@ -257,14 +260,14 @@ public class ContainerFluidMonitor extends FCContainerMonitor { if (drainStack.left > aeFluidStack.getStackSize() && FluidContainerRegistry.isContainer(drainStack.right)) { aeFluidStack.setStackSize(drainStack.left - aeFluidStack.getStackSize()); - this.host - .getFluidInventory() + this.host.getFluidInventory() .extractItems(aeFluidStack, Actionable.MODULATE, this.getActionSource()); continue; } - this.dropItem( - drainStack.right, (int) (aeFluidStack.getStackSize() / drainStack.left)); // drop empty item + this.dropItem(drainStack.right, (int) (aeFluidStack.getStackSize() / drainStack.left)); // drop + // empty + // item out.stackSize = (int) (notInserted.getStackSize() / drainStack.left); if (drainStack.right.getItem() instanceof IFluidContainerItem) { if (notInserted.getStackSize() % drainStack.left > 0) { @@ -276,8 +279,7 @@ public class ContainerFluidMonitor extends FCContainerMonitor { } else if (FluidContainerRegistry.isContainer(drainStack.right)) { if (notInserted.getStackSize() % drainStack.left > 0) { aeFluidStack.setStackSize(aeFluidStack.getStackSize() % drainStack.left); - this.host - .getFluidInventory() + this.host.getFluidInventory() .extractItems(aeFluidStack, Actionable.MODULATE, this.getActionSource()); out.stackSize++; } @@ -287,8 +289,8 @@ public class ContainerFluidMonitor extends FCContainerMonitor { if (slotIndex == -1) { out.stackSize = fluidContainer.stackSize; } else { - out.stackSize = - (int) (fluidContainer.stackSize - (aeFluidStack.getStackSize() / drainStack.left)); + out.stackSize = (int) (fluidContainer.stackSize + - (aeFluidStack.getStackSize() / drainStack.left)); } this.dropItem(drainStack.right, fluidContainer.stackSize); // drop empty item } @@ -303,8 +305,8 @@ public class ContainerFluidMonitor extends FCContainerMonitor { (EntityPlayerMP) player); } else { player.inventory.setItemStack(null); - FluidCraft.proxy.netHandler.sendTo( - new SPacketFluidUpdate(new HashMap<>()), (EntityPlayerMP) player); + FluidCraft.proxy.netHandler + .sendTo(new SPacketFluidUpdate(new HashMap<>()), (EntityPlayerMP) player); } } else { player.inventory.setInventorySlotContents(slotIndex, out.stackSize > 0 ? out : null); diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPacketDecoder.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPacketDecoder.java index fe8b9963..3ab7ba1c 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPacketDecoder.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPacketDecoder.java @@ -2,10 +2,12 @@ package com.glodblock.github.client.gui.container; import static com.glodblock.github.loader.ItemAndBlockHolder.PACKET; +import net.minecraft.entity.player.InventoryPlayer; + import appeng.container.AEBaseContainer; + import com.glodblock.github.common.tile.TileFluidPacketDecoder; import com.glodblock.github.inventory.slot.FCSlotRestrictedInput; -import net.minecraft.entity.player.InventoryPlayer; public class ContainerFluidPacketDecoder extends AEBaseContainer { diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternEncoder.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternEncoder.java index d35849a2..37fe4d81 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternEncoder.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternEncoder.java @@ -1,10 +1,20 @@ package com.glodblock.github.client.gui.container; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + import appeng.api.AEApi; import appeng.api.storage.data.IAEItemStack; import appeng.container.AEBaseContainer; import appeng.container.slot.SlotRestrictedInput; import appeng.helpers.InventoryAction; + import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidEncodedPattern; import com.glodblock.github.common.item.ItemFluidPacket; @@ -16,13 +26,6 @@ import com.glodblock.github.inventory.slot.SlotFluidConvertingFake; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.util.FluidPatternDetails; import com.glodblock.github.util.Util; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; public class ContainerFluidPatternEncoder extends AEBaseContainer implements IPatternConsumer { @@ -39,10 +42,22 @@ public class ContainerFluidPatternEncoder extends AEBaseContainer implements IPa } addSlotToContainer(new SlotFluidConvertingFake(output, y, 113, 17 + y * 18)); } - addSlotToContainer(new SlotRestrictedInput( - SlotRestrictedInput.PlacableItemType.BLANK_PATTERN, tile.getInventory(), 0, 138, 20, ipl)); - addSlotToContainer(new SlotRestrictedInput( - SlotRestrictedInput.PlacableItemType.ENCODED_PATTERN, tile.getInventory(), 1, 138, 50, ipl)); + addSlotToContainer( + new SlotRestrictedInput( + SlotRestrictedInput.PlacableItemType.BLANK_PATTERN, + tile.getInventory(), + 0, + 138, + 20, + ipl)); + addSlotToContainer( + new SlotRestrictedInput( + SlotRestrictedInput.PlacableItemType.ENCODED_PATTERN, + tile.getInventory(), + 1, + 138, + 50, + ipl)); bindPlayerInventory(ipl, 0, 84); } @@ -51,9 +66,8 @@ public class ContainerFluidPatternEncoder extends AEBaseContainer implements IPa } private static boolean isNotPattern(ItemStack stack) { - return stack == null - || !(AEApi.instance().definitions().materials().blankPattern().isSameAs(stack) - || (stack.getItem() instanceof ItemFluidEncodedPattern)); + return stack == null || !(AEApi.instance().definitions().materials().blankPattern().isSameAs(stack) + || (stack.getItem() instanceof ItemFluidEncodedPattern)); } public boolean canEncodePattern() { @@ -61,8 +75,7 @@ public class ContainerFluidPatternEncoder extends AEBaseContainer implements IPa && isNotPattern(tile.getInventory().getStackInSlot(1))) { return false; } - find_input: - { + find_input: { for (IAEItemStack stack : tile.getCraftingSlots()) { if (stack != null && stack.getStackSize() > 0) { break find_input; @@ -136,8 +149,10 @@ public class ContainerFluidPatternEncoder extends AEBaseContainer implements IPa if (stack == null) { slot.putStack(Util.copyStackWithSize(inSlot, Math.max(1, inSlot.stackSize - 1))); } else if (stack.isItemEqual(inSlot)) { - slot.putStack(Util.copyStackWithSize( - inSlot, Math.min(inSlot.getMaxStackSize(), inSlot.stackSize + 1))); + slot.putStack( + Util.copyStackWithSize( + inSlot, + Math.min(inSlot.getMaxStackSize(), inSlot.stackSize + 1))); } else { ((SlotFluidConvertingFake) slot) .putConvertedStack(Objects.requireNonNull(Util.copyStackWithSize(stack, 1))); diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminal.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminal.java index 88f382fa..3a07166a 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminal.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminal.java @@ -1,18 +1,20 @@ package com.glodblock.github.client.gui.container; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; + import appeng.api.storage.ITerminalHost; import appeng.container.slot.OptionalSlotFake; import appeng.container.slot.SlotFakeCraftingMatrix; import appeng.container.slot.SlotPatternOutputs; import appeng.container.slot.SlotPatternTerm; import appeng.util.Platform; + import com.glodblock.github.client.gui.container.base.FCContainerEncodeTerminal; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.InventoryCrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.CraftingManager; public class ContainerFluidPatternTerminal extends FCContainerEncodeTerminal { @@ -25,8 +27,11 @@ public class ContainerFluidPatternTerminal extends FCContainerEncodeTerminal { for (int y = 0; y < 3; y++) { for (int x = 0; x < 3; x++) { this.addSlotToContainer( - this.craftingSlots[x + y * 3] = - new SlotFakeCraftingMatrix(this.crafting, x + y * 3, 18 + x * 18, -76 + y * 18)); + this.craftingSlots[x + y * 3] = new SlotFakeCraftingMatrix( + this.crafting, + x + y * 3, + 18 + x * 18, + -76 + y * 18)); } } @@ -101,7 +106,7 @@ public class ContainerFluidPatternTerminal extends FCContainerEncodeTerminal { if (this.isCraftingMode()) { final ItemStack out = this.getAndUpdateOutput(); if (out != null && out.stackSize > 0) { - return new ItemStack[] {out}; + return new ItemStack[] { out }; } } return super.getOutputs(); diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminalEx.java index 6c281306..d9aeb692 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminalEx.java @@ -1,15 +1,17 @@ package com.glodblock.github.client.gui.container; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; + import appeng.api.storage.ITerminalHost; import appeng.container.slot.IOptionalSlotHost; import appeng.container.slot.OptionalSlotFake; import appeng.helpers.InventoryAction; import appeng.util.Platform; + import com.glodblock.github.client.gui.container.base.FCContainerEncodeTerminal; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; public class ContainerFluidPatternTerminalEx extends FCContainerEncodeTerminal { @@ -27,8 +29,8 @@ public class ContainerFluidPatternTerminalEx extends FCContainerEncodeTerminal { for (int y = 0; y < CRAFTING_GRID_HEIGHT; y++) { for (int x = 0; x < CRAFTING_GRID_WIDTH; x++) { this.addSlotToContainer( - this.craftingSlots[x + y * CRAFTING_GRID_WIDTH + page * CRAFTING_GRID_SLOTS] = - new ProcessingSlotFake( + this.craftingSlots[x + y * CRAFTING_GRID_WIDTH + + page * CRAFTING_GRID_SLOTS] = new ProcessingSlotFake( crafting, this, x + y * CRAFTING_GRID_WIDTH + page * CRAFTING_GRID_SLOTS, @@ -42,8 +44,8 @@ public class ContainerFluidPatternTerminalEx extends FCContainerEncodeTerminal { for (int x = 0; x < CRAFTING_GRID_WIDTH; x++) { for (int y = 0; y < CRAFTING_GRID_HEIGHT; y++) { this.addSlotToContainer( - this.outputSlots[x * CRAFTING_GRID_HEIGHT + y + page * CRAFTING_GRID_SLOTS] = - new ProcessingSlotFake( + this.outputSlots[x * CRAFTING_GRID_HEIGHT + y + + page * CRAFTING_GRID_SLOTS] = new ProcessingSlotFake( output, this, x * CRAFTING_GRID_HEIGHT + y + page * CRAFTING_GRID_SLOTS, @@ -135,15 +137,8 @@ public class ContainerFluidPatternTerminalEx extends FCContainerEncodeTerminal { private static final int POSITION_SHIFT = 9000; private boolean hidden = false; - public ProcessingSlotFake( - IInventory inv, - IOptionalSlotHost containerBus, - int idx, - int x, - int y, - int offX, - int offY, - int groupNum) { + public ProcessingSlotFake(IInventory inv, IOptionalSlotHost containerBus, int idx, int x, int y, int offX, + int offY, int groupNum) { super(inv, containerBus, idx, x, y, offX, offY, groupNum); this.setRenderDisabled(false); } diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPortableCell.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPortableCell.java index 12da1443..ae94e6b8 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPortableCell.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPortableCell.java @@ -1,11 +1,13 @@ package com.glodblock.github.client.gui.container; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; + import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; import appeng.util.Platform; + import com.glodblock.github.inventory.item.IFluidPortableCell; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; public class ContainerFluidPortableCell extends ContainerFluidMonitor { @@ -30,8 +32,7 @@ public class ContainerFluidPortableCell extends ContainerFluidMonitor { @Override public void detectAndSendChanges() { - final ItemStack currentItem = this.slot < 0 - ? this.getPlayerInv().getCurrentItem() + final ItemStack currentItem = this.slot < 0 ? this.getPlayerInv().getCurrentItem() : this.getPlayerInv().getStackInSlot(this.slot); if (this.civ != null) { if (currentItem != this.civ.getItemStack()) { @@ -52,7 +53,9 @@ public class ContainerFluidPortableCell extends ContainerFluidMonitor { this.ticks++; if (this.ticks > 10 && this.civ != null) { this.civ.extractAEPower( - this.getPowerMultiplier() * this.ticks, Actionable.MODULATE, PowerMultiplier.CONFIG); + this.getPowerMultiplier() * this.ticks, + Actionable.MODULATE, + PowerMultiplier.CONFIG); this.ticks = 0; } super.detectAndSendChanges(); diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidStorageBus.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidStorageBus.java index 9ad964df..3adb9246 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidStorageBus.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidStorageBus.java @@ -1,5 +1,10 @@ package com.glodblock.github.client.gui.container; +import java.util.Iterator; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; + import appeng.api.AEApi; import appeng.api.config.*; import appeng.api.storage.IMEInventory; @@ -10,14 +15,12 @@ import appeng.container.slot.SlotRestrictedInput; import appeng.tile.inventory.AppEngInternalAEInventory; import appeng.util.Platform; import appeng.util.iterators.NullIterator; + import com.glodblock.github.client.gui.container.base.FCContainerFluidConfigurable; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.common.parts.PartFluidStorageBus; import com.glodblock.github.inventory.slot.OptionalFluidSlotFakeTypeOnly; import com.glodblock.github.util.Ae2Reflect; -import java.util.Iterator; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; public class ContainerFluidStorageBus extends FCContainerFluidConfigurable { @@ -51,41 +54,46 @@ public class ContainerFluidStorageBus extends FCContainerFluidConfigurable { new OptionalFluidSlotFakeTypeOnly(config, null, this, y * 9 + x, xo, yo, x, y, y)); } } - this.addSlotToContainer((new SlotRestrictedInput( - SlotRestrictedInput.PlacableItemType.UPGRADES, upgrades, 0, 187, 8, this.getInventoryPlayer())) - .setNotDraggable()); - this.addSlotToContainer((new SlotRestrictedInput( + this.addSlotToContainer( + (new SlotRestrictedInput( + SlotRestrictedInput.PlacableItemType.UPGRADES, + upgrades, + 0, + 187, + 8, + this.getInventoryPlayer())).setNotDraggable()); + this.addSlotToContainer( + (new SlotRestrictedInput( SlotRestrictedInput.PlacableItemType.UPGRADES, upgrades, 1, 187, 8 + 18, - this.getInventoryPlayer())) - .setNotDraggable()); - this.addSlotToContainer((new SlotRestrictedInput( + this.getInventoryPlayer())).setNotDraggable()); + this.addSlotToContainer( + (new SlotRestrictedInput( SlotRestrictedInput.PlacableItemType.UPGRADES, upgrades, 2, 187, 8 + 18 * 2, - this.getInventoryPlayer())) - .setNotDraggable()); - this.addSlotToContainer((new SlotRestrictedInput( + this.getInventoryPlayer())).setNotDraggable()); + this.addSlotToContainer( + (new SlotRestrictedInput( SlotRestrictedInput.PlacableItemType.UPGRADES, upgrades, 3, 187, 8 + 18 * 3, - this.getInventoryPlayer())) - .setNotDraggable()); - this.addSlotToContainer((new SlotRestrictedInput( + this.getInventoryPlayer())).setNotDraggable()); + this.addSlotToContainer( + (new SlotRestrictedInput( SlotRestrictedInput.PlacableItemType.UPGRADES, upgrades, 4, 187, 8 + 18 * 4, - this.getInventoryPlayer())) - .setNotDraggable()); + this.getInventoryPlayer())).setNotDraggable()); } @Override @@ -113,10 +121,11 @@ public class ContainerFluidStorageBus extends FCContainerFluidConfigurable { this.verifyPermissions(SecurityPermissions.BUILD, false); if (Platform.isServer()) { - this.setReadWriteMode((AccessRestriction) - Ae2Reflect.getUpgradeList(this).getConfigManager().getSetting(Settings.ACCESS)); - this.setStorageFilter((StorageFilter) - Ae2Reflect.getUpgradeList(this).getConfigManager().getSetting(Settings.STORAGE_FILTER)); + this.setReadWriteMode( + (AccessRestriction) Ae2Reflect.getUpgradeList(this).getConfigManager().getSetting(Settings.ACCESS)); + this.setStorageFilter( + (StorageFilter) Ae2Reflect.getUpgradeList(this).getConfigManager() + .getSetting(Settings.STORAGE_FILTER)); } this.standardDetectAndSendChanges(); @@ -142,8 +151,8 @@ public class ContainerFluidStorageBus extends FCContainerFluidConfigurable { final IMEInventory cellInv = this.bus.getInternalHandler(); Iterator i = new NullIterator<>(); if (cellInv != null) { - final IItemList list = - cellInv.getAvailableItems(AEApi.instance().storage().createFluidList()); + final IItemList list = cellInv + .getAvailableItems(AEApi.instance().storage().createFluidList()); i = list.iterator(); } diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerIngredientBuffer.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerIngredientBuffer.java index 37c95813..1ac9a816 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerIngredientBuffer.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerIngredientBuffer.java @@ -1,19 +1,22 @@ package com.glodblock.github.client.gui.container; -import appeng.api.storage.data.IAEFluidStack; -import appeng.container.AEBaseContainer; -import appeng.container.slot.SlotNormal; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.client.gui.ITankDump; -import com.glodblock.github.common.tile.TileIngredientBuffer; -import com.glodblock.github.network.SPacketFluidUpdate; import java.util.HashMap; import java.util.Map; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; +import appeng.api.storage.data.IAEFluidStack; +import appeng.container.AEBaseContainer; +import appeng.container.slot.SlotNormal; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.client.gui.ITankDump; +import com.glodblock.github.common.tile.TileIngredientBuffer; +import com.glodblock.github.network.SPacketFluidUpdate; + public class ContainerIngredientBuffer extends AEBaseContainer implements ITankDump { private final TileIngredientBuffer tile; diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerItemMonitor.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerItemMonitor.java index a27245f2..154717ee 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerItemMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerItemMonitor.java @@ -1,5 +1,13 @@ package com.glodblock.github.client.gui.container; +import java.nio.BufferOverflowException; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.api.AEApi; import appeng.api.implementations.guiobjects.IPortableCell; import appeng.api.implementations.tiles.IMEChest; @@ -17,25 +25,21 @@ import appeng.api.storage.data.IItemList; import appeng.container.slot.SlotRestrictedInput; import appeng.me.helpers.ChannelPowerSrc; import appeng.util.Platform; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.base.FCContainerMonitor; import com.glodblock.github.network.SPacketMEInventoryUpdate; -import java.nio.BufferOverflowException; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ICrafting; -import net.minecraftforge.common.util.ForgeDirection; public class ContainerItemMonitor extends FCContainerMonitor { + private final IItemList items = AEApi.instance().storage().createItemList(); public ContainerItemMonitor(final InventoryPlayer ip, final ITerminalHost monitorable) { this(ip, monitorable, true); } - protected ContainerItemMonitor( - final InventoryPlayer ip, final ITerminalHost monitorable, final boolean bindInventory) { + protected ContainerItemMonitor(final InventoryPlayer ip, final ITerminalHost monitorable, + final boolean bindInventory) { super(ip, monitorable, bindInventory); if (Platform.isServer()) { this.serverCM = monitorable.getConfigManager(); @@ -140,9 +144,7 @@ public class ContainerItemMonitor extends FCContainerMonitor { } @Override - public void postChange( - final IBaseMonitor monitor, - final Iterable change, + public void postChange(final IBaseMonitor monitor, final Iterable change, final BaseActionSource source) { for (final IAEItemStack is : change) { this.items.add(is); diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerLargeIngredientBuffer.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerLargeIngredientBuffer.java index 9bad2a7f..9a872422 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerLargeIngredientBuffer.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerLargeIngredientBuffer.java @@ -1,10 +1,12 @@ package com.glodblock.github.client.gui.container; -import appeng.container.slot.SlotNormal; -import com.glodblock.github.common.tile.TileLargeIngredientBuffer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; +import appeng.container.slot.SlotNormal; + +import com.glodblock.github.common.tile.TileLargeIngredientBuffer; + public class ContainerLargeIngredientBuffer extends ContainerIngredientBuffer { public ContainerLargeIngredientBuffer(InventoryPlayer ipl, TileLargeIngredientBuffer tile) { diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerLevelMaintainer.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerLevelMaintainer.java index 109db93a..10ff6353 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerLevelMaintainer.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerLevelMaintainer.java @@ -1,16 +1,19 @@ package com.glodblock.github.client.gui.container; -import appeng.container.AEBaseContainer; -import appeng.util.item.AEItemStack; -import com.glodblock.github.common.tile.TileLevelMaintainer; -import com.glodblock.github.inventory.AeItemStackHandler; -import com.glodblock.github.inventory.slot.SlotFluidConvertingFake; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import appeng.container.AEBaseContainer; +import appeng.util.item.AEItemStack; + +import com.glodblock.github.common.tile.TileLevelMaintainer; +import com.glodblock.github.inventory.AeItemStackHandler; +import com.glodblock.github.inventory.slot.SlotFluidConvertingFake; + public class ContainerLevelMaintainer extends AEBaseContainer { + private final TileLevelMaintainer tile; private final SlotFluidConvertingFake[] requestSlots = new SlotFluidConvertingFake[TileLevelMaintainer.REQ_COUNT]; diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerOCPatternEditor.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerOCPatternEditor.java index cb1f00b7..ef33c846 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerOCPatternEditor.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerOCPatternEditor.java @@ -1,9 +1,11 @@ package com.glodblock.github.client.gui.container; +import net.minecraft.entity.player.InventoryPlayer; + import appeng.container.AEBaseContainer; import appeng.container.slot.SlotRestrictedInput; + import com.glodblock.github.common.tile.TileOCPatternEditor; -import net.minecraft.entity.player.InventoryPlayer; public class ContainerOCPatternEditor extends AEBaseContainer { @@ -11,13 +13,14 @@ public class ContainerOCPatternEditor extends AEBaseContainer { super(ipl, tile); for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { - addSlotToContainer(new SlotRestrictedInput( - SlotRestrictedInput.PlacableItemType.PATTERN, - tile.getInternalInventory(), - j * 4 + i, - 55 + i * 18, - 17 + j * 18, - ipl)); + addSlotToContainer( + new SlotRestrictedInput( + SlotRestrictedInput.PlacableItemType.PATTERN, + tile.getInternalInventory(), + j * 4 + i, + 55 + i * 18, + 17 + j * 18, + ipl)); } } bindPlayerInventory(ipl, 0, 104); diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerPatternValueAmount.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerPatternValueAmount.java index 7c3d9350..525a3f22 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerPatternValueAmount.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerPatternValueAmount.java @@ -1,13 +1,14 @@ package com.glodblock.github.client.gui.container; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; + import appeng.api.config.SecurityPermissions; import appeng.api.storage.ITerminalHost; import appeng.container.AEBaseContainer; import appeng.container.guisync.GuiSync; import appeng.container.slot.SlotInaccessible; import appeng.tile.inventory.AppEngInternalInventory; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; public class ContainerPatternValueAmount extends AEBaseContainer { diff --git a/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerEncodeTerminal.java b/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerEncodeTerminal.java index b9a5a368..d51fb67b 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerEncodeTerminal.java +++ b/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerEncodeTerminal.java @@ -1,5 +1,22 @@ package com.glodblock.github.client.gui.container.base; +import java.util.*; +import java.util.stream.Collectors; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidContainerItem; + import appeng.api.AEApi; import appeng.api.definitions.IDefinitions; import appeng.api.storage.ITerminalHost; @@ -14,6 +31,7 @@ import appeng.tile.inventory.IAEAppEngInventory; import appeng.tile.inventory.InvOperation; import appeng.util.Platform; import appeng.util.item.AEItemStack; + import com.glodblock.github.client.gui.container.ContainerItemMonitor; import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidEncodedPattern; @@ -23,21 +41,6 @@ import com.glodblock.github.inventory.IPatternConsumer; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.util.FluidPatternDetails; import com.glodblock.github.util.Util; -import java.util.*; -import java.util.stream.Collectors; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidContainerItem; public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor implements IAEAppEngInventory, IOptionalSlotHost, IContainerCraftingPacket, IPatternConsumer { @@ -154,8 +157,7 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor public ItemStack transferStackInSlot(EntityPlayer p, int idx) { Slot clickSlot = (Slot) this.inventorySlots.get(idx); ItemStack is = clickSlot.getStack(); - if (is != null - && !patternSlotOUT.getHasStack() + if (is != null && !patternSlotOUT.getHasStack() && is.stackSize == 1 && (is.getItem() instanceof ItemFluidEncodedPattern || is.getItem() instanceof ItemEncodedPattern)) { ItemStack output = is.copy(); @@ -173,20 +175,16 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor } protected static boolean canDoubleStacks(SlotFake[] slots) { - List enabledSlots = - Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); - long emptySlots = - enabledSlots.stream().filter(s -> s.getStack() == null).count(); - long fullSlots = enabledSlots.stream() - .filter(s -> s.getStack() != null && s.getStack().stackSize * 2 > 127) + List enabledSlots = Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); + long emptySlots = enabledSlots.stream().filter(s -> s.getStack() == null).count(); + long fullSlots = enabledSlots.stream().filter(s -> s.getStack() != null && s.getStack().stackSize * 2 > 127) .count(); return fullSlots <= emptySlots; } protected static void doubleStacksInternal(SlotFake[] slots) { List overFlowStacks = new ArrayList<>(); - List enabledSlots = - Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); + List enabledSlots = Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); for (final Slot s : enabledSlots) { ItemStack st = s.getStack(); if (st == null) continue; @@ -214,26 +212,20 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor } protected static boolean containsItem(SlotFake[] slots) { - List enabledSlots = - Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); - long item = enabledSlots.stream() - .filter(s -> s.getStack() != null && !Util.isFluidPacket(s.getStack())) + List enabledSlots = Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); + long item = enabledSlots.stream().filter(s -> s.getStack() != null && !Util.isFluidPacket(s.getStack())) .count(); return item > 0; } protected static boolean containsFluid(SlotFake[] slots) { - List enabledSlots = - Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); - long fluid = enabledSlots.stream() - .filter(s -> Util.isFluidPacket(s.getStack())) - .count(); + List enabledSlots = Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); + long fluid = enabledSlots.stream().filter(s -> Util.isFluidPacket(s.getStack())).count(); return fluid > 0; } protected static boolean nonNullSlot(SlotFake[] slots) { - List enabledSlots = - Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); + List enabledSlots = Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); long object = enabledSlots.stream().filter(s -> s.getStack() != null).count(); return object > 0; } @@ -296,12 +288,8 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor } @Override - public void onChangeInventory( - final IInventory inv, - final int slot, - final InvOperation mc, - final ItemStack removedStack, - final ItemStack newStack) { + public void onChangeInventory(final IInventory inv, final int slot, final InvOperation mc, + final ItemStack removedStack, final ItemStack newStack) { // NO-OP } @@ -377,22 +365,14 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor } // add a new encoded pattern. - for (final ItemStack encodedPatternStack : AEApi.instance() - .definitions() - .items() - .encodedPattern() - .maybeStack(1) - .asSet()) { + for (final ItemStack encodedPatternStack : AEApi.instance().definitions().items().encodedPattern() + .maybeStack(1).asSet()) { output = encodedPatternStack; this.patternSlotOUT.putStack(output); } } else if (output.getItem() instanceof ItemFluidEncodedPattern) { - for (final ItemStack encodedPatternStack : AEApi.instance() - .definitions() - .items() - .encodedPattern() - .maybeStack(1) - .asSet()) { + for (final ItemStack encodedPatternStack : AEApi.instance().definitions().items().encodedPattern() + .maybeStack(1).asSet()) { output = encodedPatternStack; this.patternSlotOUT.putStack(output); } diff --git a/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerFluidConfigurable.java b/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerFluidConfigurable.java index ba43e25b..43620cc1 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerFluidConfigurable.java +++ b/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerFluidConfigurable.java @@ -1,5 +1,15 @@ package com.glodblock.github.client.gui.container.base; +import java.util.HashMap; +import java.util.Map; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.config.Upgrades; import appeng.api.implementations.IUpgradeableHost; import appeng.api.storage.data.IAEFluidStack; @@ -8,20 +18,13 @@ import appeng.container.slot.AppEngSlot; import appeng.tile.inventory.AppEngInternalAEInventory; import appeng.util.Platform; import appeng.util.item.AEFluidStack; + import com.glodblock.github.FluidCraft; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.slot.OptionalFluidSlotFakeTypeOnly; import com.glodblock.github.network.SPacketFluidUpdate; import com.glodblock.github.util.Ae2Reflect; import com.glodblock.github.util.Util; -import java.util.HashMap; -import java.util.Map; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; public abstract class FCContainerFluidConfigurable extends ContainerUpgradeable { @@ -99,9 +102,9 @@ public abstract class FCContainerFluidConfigurable extends ContainerUpgradeable final AppEngInternalAEInventory inv = this.getFakeFluidInv(); final Map tmp = new HashMap<>(); for (int i = 0; i < inv.getSizeInventory(); ++i) { - if (inv.getStackInSlot(i) != null - && !this.isValidForConfig( - i, AEFluidStack.create(ItemFluidPacket.getFluidStack(inv.getStackInSlot(i))))) { + if (inv.getStackInSlot(i) != null && !this.isValidForConfig( + i, + AEFluidStack.create(ItemFluidPacket.getFluidStack(inv.getStackInSlot(i))))) { inv.setInventorySlotContents(i, null); } tmp.put(i, AEFluidStack.create(ItemFluidPacket.getFluidStack(inv.getStackInSlot(i)))); diff --git a/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerMonitor.java b/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerMonitor.java index 79073665..6217f96e 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerMonitor.java @@ -1,5 +1,16 @@ package com.glodblock.github.client.gui.container.base; +import java.io.IOException; + +import javax.annotation.Nonnull; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; + import appeng.api.config.*; import appeng.api.networking.IGridNode; import appeng.api.networking.energy.IEnergyGrid; @@ -20,14 +31,6 @@ import appeng.helpers.WirelessTerminalGuiObject; import appeng.util.ConfigManager; import appeng.util.IConfigManagerHost; import appeng.util.Platform; -import java.io.IOException; -import javax.annotation.Nonnull; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ICrafting; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; public abstract class FCContainerMonitor> extends AEBaseContainer implements IConfigManagerHost, IConfigurableObject, IMEMonitorHandlerReceiver { @@ -51,8 +54,8 @@ public abstract class FCContainerMonitor> extends AEBaseCo this(ip, monitorable, true); } - protected FCContainerMonitor( - final InventoryPlayer ip, final ITerminalHost monitorable, final boolean bindInventory) { + protected FCContainerMonitor(final InventoryPlayer ip, final ITerminalHost monitorable, + final boolean bindInventory) { super( ip, monitorable instanceof TileEntity ? (TileEntity) monitorable : null, @@ -83,7 +86,8 @@ public abstract class FCContainerMonitor> extends AEBaseCo for (final Object crafter : this.crafters) { try { NetworkHandler.instance.sendTo( - new PacketValueConfig(set.name(), sideLocal.name()), (EntityPlayerMP) crafter); + new PacketValueConfig(set.name(), sideLocal.name()), + (EntityPlayerMP) crafter); } catch (final IOException e) { AELog.debug(e); } @@ -93,8 +97,8 @@ public abstract class FCContainerMonitor> extends AEBaseCo processItemList(); this.updatePowerStatus(); final boolean oldAccessible = this.canAccessViewCells; - this.canAccessViewCells = - this.host instanceof WirelessTerminalGuiObject || this.hasAccess(SecurityPermissions.BUILD, false); + this.canAccessViewCells = this.host instanceof WirelessTerminalGuiObject + || this.hasAccess(SecurityPermissions.BUILD, false); if (this.canAccessViewCells != oldAccessible) { for (int y = 0; y < 5; y++) { if (this.cellView[y] != null) { @@ -122,8 +126,7 @@ public abstract class FCContainerMonitor> extends AEBaseCo this.setPowered( this.getPowerSource().extractAEPower(1, Actionable.SIMULATE, PowerMultiplier.CONFIG) > 0.8); } - } catch (final Throwable ignore) { - } + } catch (final Throwable ignore) {} } @Override diff --git a/src/main/java/com/glodblock/github/client/me/FluidRepo.java b/src/main/java/com/glodblock/github/client/me/FluidRepo.java index ebeb9010..c6b759ca 100644 --- a/src/main/java/com/glodblock/github/client/me/FluidRepo.java +++ b/src/main/java/com/glodblock/github/client/me/FluidRepo.java @@ -1,23 +1,25 @@ /* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . + * This file is part of Applied Energistics 2. Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. Applied + * Energistics 2 is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General + * Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any + * later version. Applied Energistics 2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General + * Public License for more details. You should have received a copy of the GNU Lesser General Public License along with + * Applied Energistics 2. If not, see . */ package com.glodblock.github.client.me; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.regex.Pattern; + +import javax.annotation.Nonnull; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; + import appeng.api.AEApi; import appeng.api.config.*; import appeng.api.storage.data.IAEItemStack; @@ -28,17 +30,11 @@ import appeng.client.me.ItemRepo; import appeng.core.AEConfig; import appeng.items.storage.ItemViewCell; import appeng.util.prioitylist.IPartitionList; + import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.util.FluidSorters; import com.glodblock.github.util.Util; import cpw.mods.fml.relauncher.ReflectionHelper; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.regex.Pattern; -import javax.annotation.Nonnull; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.Fluid; public class FluidRepo extends ItemRepo { @@ -186,8 +182,8 @@ public class FluidRepo extends ItemRepo { private void updateNEI(final String filter) { try { if (this.NEIWord == null || !this.NEIWord.equals(filter)) { - final Class c = - ReflectionHelper.getClass(this.getClass().getClassLoader(), "codechicken.nei.LayoutManager"); + final Class c = ReflectionHelper + .getClass(this.getClass().getClassLoader(), "codechicken.nei.LayoutManager"); final Field fldSearchField = c.getField("searchField"); final Object searchField = fldSearchField.get(c); diff --git a/src/main/java/com/glodblock/github/client/render/ItemDropRender.java b/src/main/java/com/glodblock/github/client/render/ItemDropRender.java index 3f13fb11..c259063e 100644 --- a/src/main/java/com/glodblock/github/client/render/ItemDropRender.java +++ b/src/main/java/com/glodblock/github/client/render/ItemDropRender.java @@ -1,12 +1,8 @@ package com.glodblock.github.client.render; -import com.glodblock.github.common.item.ItemFluidDrop; -import com.glodblock.github.loader.ItemAndBlockHolder; -import com.glodblock.github.util.RenderUtil; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.HashMap; import java.util.Map; + import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.Tessellator; @@ -18,8 +14,16 @@ import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; + import org.lwjgl.opengl.GL11; +import com.glodblock.github.common.item.ItemFluidDrop; +import com.glodblock.github.loader.ItemAndBlockHolder; +import com.glodblock.github.util.RenderUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + @SideOnly(Side.CLIENT) public class ItemDropRender implements IItemRenderer { @@ -91,8 +95,7 @@ public class ItemDropRender implements IItemRenderer { if (colour == 0xFFFFFF) { TextureAtlasSprite sprite; try { - sprite = Minecraft.getMinecraft() - .getTextureMapBlocks() + sprite = Minecraft.getMinecraft().getTextureMapBlocks() .getTextureExtry(fluid.getStillIcon().getIconName()); } catch (NullPointerException e) { colourCache.put(fluid.getName(), colour); diff --git a/src/main/java/com/glodblock/github/client/render/ItemPacketRender.java b/src/main/java/com/glodblock/github/client/render/ItemPacketRender.java index 252b4683..b4f7bb6d 100644 --- a/src/main/java/com/glodblock/github/client/render/ItemPacketRender.java +++ b/src/main/java/com/glodblock/github/client/render/ItemPacketRender.java @@ -1,10 +1,5 @@ package com.glodblock.github.client.render; -import com.glodblock.github.common.item.ItemFluidPacket; -import com.glodblock.github.loader.ItemAndBlockHolder; -import com.glodblock.github.util.RenderUtil; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.ItemStack; @@ -13,8 +8,16 @@ import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; + import org.lwjgl.opengl.GL11; +import com.glodblock.github.common.item.ItemFluidPacket; +import com.glodblock.github.loader.ItemAndBlockHolder; +import com.glodblock.github.util.RenderUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + @SideOnly(Side.CLIENT) public class ItemPacketRender implements IItemRenderer { @@ -45,9 +48,7 @@ public class ItemPacketRender implements IItemRenderer { if (fluid != null) { RGB = fluid.getFluid().getColor(fluid); } - IIcon icon = fluid == null - ? FluidRegistry.WATER.getStillIcon() - : fluid.getFluid().getStillIcon(); + IIcon icon = fluid == null ? FluidRegistry.WATER.getStillIcon() : fluid.getFluid().getStillIcon(); if (RGB != 0xFFFFFF) { GL11.glColor3f((RGB >> 16 & 0xFF) / 255.0F, (RGB >> 8 & 0xFF) / 255.0F, (RGB & 0xFF) / 255.0F); diff --git a/src/main/java/com/glodblock/github/client/render/ItemWalrusRender.java b/src/main/java/com/glodblock/github/client/render/ItemWalrusRender.java index c4dade1f..bc09137e 100644 --- a/src/main/java/com/glodblock/github/client/render/ItemWalrusRender.java +++ b/src/main/java/com/glodblock/github/client/render/ItemWalrusRender.java @@ -1,9 +1,5 @@ package com.glodblock.github.client.render; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.tile.TileWalrus; -import com.glodblock.github.loader.ItemAndBlockHolder; -import cpw.mods.fml.client.registry.ClientRegistry; import net.minecraft.client.Minecraft; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -12,9 +8,16 @@ import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.client.model.IModelCustom; + import org.lwjgl.opengl.GL11; +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.tile.TileWalrus; +import com.glodblock.github.loader.ItemAndBlockHolder; +import cpw.mods.fml.client.registry.ClientRegistry; + public class ItemWalrusRender implements IItemRenderer { + IModelCustom modelWalrus = AdvancedModelLoader.loadModel(FluidCraft.resource("models/walrus.obj")); ResourceLocation textureWalrus = FluidCraft.resource("textures/blocks/walrus.png"); @@ -54,8 +57,8 @@ public class ItemWalrusRender implements IItemRenderer { } @Override - public boolean shouldUseRenderHelper( - IItemRenderer.ItemRenderType type, ItemStack item, IItemRenderer.ItemRendererHelper helper) { + public boolean shouldUseRenderHelper(IItemRenderer.ItemRenderType type, ItemStack item, + IItemRenderer.ItemRendererHelper helper) { return true; } } diff --git a/src/main/java/com/glodblock/github/client/render/RenderBlockFluidBuffer.java b/src/main/java/com/glodblock/github/client/render/RenderBlockFluidBuffer.java index 098a81e8..173059ec 100644 --- a/src/main/java/com/glodblock/github/client/render/RenderBlockFluidBuffer.java +++ b/src/main/java/com/glodblock/github/client/render/RenderBlockFluidBuffer.java @@ -1,9 +1,5 @@ package com.glodblock.github.client.render; -import appeng.client.render.BaseBlockRender; -import appeng.client.render.BlockRenderInfo; -import com.glodblock.github.common.block.BlockFluidBuffer; -import com.glodblock.github.common.tile.TileFluidBuffer; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; @@ -11,8 +7,15 @@ import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; + import org.lwjgl.opengl.GL11; +import appeng.client.render.BaseBlockRender; +import appeng.client.render.BlockRenderInfo; + +import com.glodblock.github.common.block.BlockFluidBuffer; +import com.glodblock.github.common.tile.TileFluidBuffer; + public class RenderBlockFluidBuffer extends BaseBlockRender { public RenderBlockFluidBuffer() { @@ -20,13 +23,8 @@ public class RenderBlockFluidBuffer extends BaseBlockRender { public RenderBlockFluidInterface() { @@ -18,20 +20,20 @@ public class RenderBlockFluidInterface extends BaseBlockRender { public RenderBlockLevelMaintainer() { @@ -16,13 +18,8 @@ public class RenderBlockLevelMaintainer extends BaseBlockRender toolTip, boolean advancedToolTips) {} + public void addInformation(ItemStack itemStack, EntityPlayer player, List toolTip, + boolean advancedToolTips) {} } diff --git a/src/main/java/com/glodblock/github/common/block/BlockFluidBuffer.java b/src/main/java/com/glodblock/github/common/block/BlockFluidBuffer.java index 5dfb9707..7992d6eb 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockFluidBuffer.java +++ b/src/main/java/com/glodblock/github/common/block/BlockFluidBuffer.java @@ -2,8 +2,18 @@ package com.glodblock.github.common.block; import static net.minecraft.client.gui.GuiScreen.isShiftKeyDown; +import java.util.List; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; +import net.minecraft.world.World; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.storage.data.IAEFluidStack; import appeng.util.Platform; + import com.glodblock.github.client.render.RenderBlockFluidBuffer; import com.glodblock.github.common.item.FCBaseItemBlock; import com.glodblock.github.common.tabs.FluidCraftingTabs; @@ -11,16 +21,10 @@ import com.glodblock.github.common.tile.TileFluidBuffer; import com.glodblock.github.crossmod.waila.Tooltip; import com.glodblock.github.util.NameConst; import com.glodblock.github.util.Util; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.List; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.world.World; -import net.minecraftforge.fluids.FluidStack; public class BlockFluidBuffer extends FCBaseBlock { @@ -33,8 +37,8 @@ public class BlockFluidBuffer extends FCBaseBlock { } @Override - public boolean onActivated( - World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, float hitY, float hitZ) { + public boolean onActivated(World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, + float hitY, float hitZ) { ItemStack itemStack = player.inventory.getCurrentItem(); FluidStack fs = Util.getFluidFromItem(itemStack); if (Platform.isServer()) { @@ -43,8 +47,9 @@ public class BlockFluidBuffer extends FCBaseBlock { if (player.isSneaking() && itemStack == null) return !tile.setFluid(null); IAEFluidStack ias = tile.getAEStoreFluidStack(); if (fs == null && ias != null) { - player.addChatMessage(new ChatComponentText( - Tooltip.fluidFormat(ias.getFluid().getLocalizedName(), ias.getStackSize()))); + player.addChatMessage( + new ChatComponentText( + Tooltip.fluidFormat(ias.getFluid().getLocalizedName(), ias.getStackSize()))); return false; } else { tile.setFluid(fs); @@ -70,10 +75,7 @@ public class BlockFluidBuffer extends FCBaseBlock { @Override @SideOnly(Side.CLIENT) - public void addInformation( - final ItemStack itemStack, - final EntityPlayer player, - final List toolTip, + public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedToolTips) { if (isShiftKeyDown()) { toolTip.add(NameConst.i18n(NameConst.TT_FLUID_BUFFER_DESC)); diff --git a/src/main/java/com/glodblock/github/common/block/BlockFluidDiscretizer.java b/src/main/java/com/glodblock/github/common/block/BlockFluidDiscretizer.java index 0093c25d..1826b038 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockFluidDiscretizer.java +++ b/src/main/java/com/glodblock/github/common/block/BlockFluidDiscretizer.java @@ -2,18 +2,21 @@ package com.glodblock.github.common.block; import static net.minecraft.client.gui.GuiScreen.isShiftKeyDown; +import java.util.List; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + import com.glodblock.github.common.item.FCBaseItemBlock; import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.common.tile.TileFluidDiscretizer; import com.glodblock.github.util.NameConst; import com.glodblock.github.util.RenderUtil; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.List; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; public class BlockFluidDiscretizer extends FCBaseBlock { @@ -34,10 +37,7 @@ public class BlockFluidDiscretizer extends FCBaseBlock { @Override @SideOnly(Side.CLIENT) - public void addInformation( - final ItemStack itemStack, - final EntityPlayer player, - final List toolTip, + public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedToolTips) { if (isShiftKeyDown()) { diff --git a/src/main/java/com/glodblock/github/common/block/BlockFluidInterface.java b/src/main/java/com/glodblock/github/common/block/BlockFluidInterface.java index 3edb5f9e..c17e18b0 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockFluidInterface.java +++ b/src/main/java/com/glodblock/github/common/block/BlockFluidInterface.java @@ -1,10 +1,18 @@ package com.glodblock.github.common.block; +import java.util.EnumSet; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.api.util.IOrientable; import appeng.block.AEBaseItemBlock; import appeng.core.features.AEFeature; import appeng.tile.misc.TileInterface; import appeng.util.Platform; + import com.glodblock.github.client.render.RenderBlockFluidInterface; import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.common.tile.TileFluidInterface; @@ -12,14 +20,10 @@ import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.NameConst; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.EnumSet; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class BlockFluidInterface extends FCBaseBlock { @@ -38,16 +42,8 @@ public class BlockFluidInterface extends FCBaseBlock { } @Override - public boolean onActivated( - final World world, - final int x, - final int y, - final int z, - final EntityPlayer player, - final int facing, - final float hitX, - final float hitY, - final float hitZ) { + public boolean onActivated(final World world, final int x, final int y, final int z, final EntityPlayer player, + final int facing, final float hitX, final float hitY, final float hitZ) { if (player.isSneaking()) { return false; } diff --git a/src/main/java/com/glodblock/github/common/block/BlockFluidPacketDecoder.java b/src/main/java/com/glodblock/github/common/block/BlockFluidPacketDecoder.java index 696382f4..418c283c 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockFluidPacketDecoder.java +++ b/src/main/java/com/glodblock/github/common/block/BlockFluidPacketDecoder.java @@ -2,6 +2,14 @@ package com.glodblock.github.common.block; import static net.minecraft.client.gui.GuiScreen.isShiftKeyDown; +import java.util.List; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import com.glodblock.github.common.item.FCBaseItemBlock; import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.common.tile.TileFluidPacketDecoder; @@ -10,15 +18,10 @@ import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.NameConst; import com.glodblock.github.util.RenderUtil; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.List; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class BlockFluidPacketDecoder extends FCBaseBlock { @@ -30,8 +33,8 @@ public class BlockFluidPacketDecoder extends FCBaseBlock { } @Override - public boolean onActivated( - World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, float hitY, float hitZ) { + public boolean onActivated(World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, + float hitY, float hitZ) { if (player.isSneaking()) { return false; } @@ -60,10 +63,7 @@ public class BlockFluidPacketDecoder extends FCBaseBlock { @Override @SideOnly(Side.CLIENT) - public void addInformation( - final ItemStack itemStack, - final EntityPlayer player, - final List toolTip, + public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedToolTips) { if (isShiftKeyDown()) { toolTip.addAll( diff --git a/src/main/java/com/glodblock/github/common/block/BlockFluidPatternEncoder.java b/src/main/java/com/glodblock/github/common/block/BlockFluidPatternEncoder.java index 83761e81..13b99220 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockFluidPatternEncoder.java +++ b/src/main/java/com/glodblock/github/common/block/BlockFluidPatternEncoder.java @@ -1,6 +1,12 @@ package com.glodblock.github.common.block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.block.AEBaseItemBlock; + import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.common.tile.TileFluidPatternEncoder; import com.glodblock.github.inventory.InventoryHandler; @@ -8,10 +14,6 @@ import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.NameConst; import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class BlockFluidPatternEncoder extends FCBaseBlock { @@ -23,8 +25,8 @@ public class BlockFluidPatternEncoder extends FCBaseBlock { } @Override - public boolean onActivated( - World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, float hitY, float hitZ) { + public boolean onActivated(World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, + float hitY, float hitZ) { if (player.isSneaking()) { return false; } diff --git a/src/main/java/com/glodblock/github/common/block/BlockIngredientBuffer.java b/src/main/java/com/glodblock/github/common/block/BlockIngredientBuffer.java index 30f357fe..8f337a6b 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockIngredientBuffer.java +++ b/src/main/java/com/glodblock/github/common/block/BlockIngredientBuffer.java @@ -1,6 +1,12 @@ package com.glodblock.github.common.block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.block.AEBaseItemBlock; + import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.common.tile.TileIngredientBuffer; import com.glodblock.github.inventory.InventoryHandler; @@ -8,10 +14,6 @@ import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.NameConst; import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class BlockIngredientBuffer extends FCBaseBlock { @@ -24,8 +26,8 @@ public class BlockIngredientBuffer extends FCBaseBlock { } @Override - public boolean onActivated( - World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, float hitY, float hitZ) { + public boolean onActivated(World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, + float hitY, float hitZ) { if (player.isSneaking()) { return false; } diff --git a/src/main/java/com/glodblock/github/common/block/BlockLargeIngredientBuffer.java b/src/main/java/com/glodblock/github/common/block/BlockLargeIngredientBuffer.java index 991b1220..fd9ec5a4 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockLargeIngredientBuffer.java +++ b/src/main/java/com/glodblock/github/common/block/BlockLargeIngredientBuffer.java @@ -1,6 +1,12 @@ package com.glodblock.github.common.block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.block.AEBaseItemBlock; + import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.common.tile.TileLargeIngredientBuffer; import com.glodblock.github.inventory.InventoryHandler; @@ -8,10 +14,6 @@ import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.NameConst; import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class BlockLargeIngredientBuffer extends FCBaseBlock { @@ -24,8 +26,8 @@ public class BlockLargeIngredientBuffer extends FCBaseBlock { } @Override - public boolean onActivated( - World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, float hitY, float hitZ) { + public boolean onActivated(World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, + float hitY, float hitZ) { if (player.isSneaking()) { return false; } diff --git a/src/main/java/com/glodblock/github/common/block/BlockLevelMaintainer.java b/src/main/java/com/glodblock/github/common/block/BlockLevelMaintainer.java index 0e43f3d1..eb18c398 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockLevelMaintainer.java +++ b/src/main/java/com/glodblock/github/common/block/BlockLevelMaintainer.java @@ -3,8 +3,18 @@ package com.glodblock.github.common.block; import static net.minecraft.client.gui.GuiScreen.isCtrlKeyDown; import static net.minecraft.client.gui.GuiScreen.isShiftKeyDown; +import java.util.List; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.api.config.SecurityPermissions; import appeng.util.Platform; + import com.glodblock.github.client.render.RenderBlockLevelMaintainer; import com.glodblock.github.common.item.FCBaseItemBlock; import com.glodblock.github.common.tabs.FluidCraftingTabs; @@ -15,16 +25,10 @@ import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.NameConst; import com.glodblock.github.util.RenderUtil; import com.glodblock.github.util.Util; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.List; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class BlockLevelMaintainer extends FCBaseBlock { @@ -50,8 +54,8 @@ public class BlockLevelMaintainer extends FCBaseBlock { } @Override - public boolean onActivated( - World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, float hitY, float hitZ) { + public boolean onActivated(World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, + float hitY, float hitZ) { if (player.isSneaking()) { return false; } @@ -76,10 +80,7 @@ public class BlockLevelMaintainer extends FCBaseBlock { @Override @SideOnly(Side.CLIENT) - public void addInformation( - final ItemStack itemStack, - final EntityPlayer player, - final List toolTip, + public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedToolTips) { if (isShiftKeyDown() && isCtrlKeyDown()) { toolTip.add(NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_WHO_AM_I)); diff --git a/src/main/java/com/glodblock/github/common/block/BlockOCPatternEditor.java b/src/main/java/com/glodblock/github/common/block/BlockOCPatternEditor.java index 4ef7ae33..3be2dbf9 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockOCPatternEditor.java +++ b/src/main/java/com/glodblock/github/common/block/BlockOCPatternEditor.java @@ -1,6 +1,12 @@ package com.glodblock.github.common.block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.block.AEBaseItemBlock; + import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.common.tile.TileOCPatternEditor; import com.glodblock.github.inventory.InventoryHandler; @@ -9,10 +15,6 @@ import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class BlockOCPatternEditor extends FCBaseBlock { @@ -24,8 +26,8 @@ public class BlockOCPatternEditor extends FCBaseBlock { } @Override - public boolean onActivated( - World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, float hitY, float hitZ) { + public boolean onActivated(World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, + float hitY, float hitZ) { if (player.isSneaking()) { return false; } diff --git a/src/main/java/com/glodblock/github/common/block/BlockWalrus.java b/src/main/java/com/glodblock/github/common/block/BlockWalrus.java index 1aa75393..91eeb052 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockWalrus.java +++ b/src/main/java/com/glodblock/github/common/block/BlockWalrus.java @@ -2,14 +2,8 @@ package com.glodblock.github.common.block; import static net.minecraft.client.gui.GuiScreen.isShiftKeyDown; -import com.glodblock.github.common.item.BaseItemBlockContainer; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.common.tile.TileWalrus; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.List; + import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -20,6 +14,15 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import com.glodblock.github.common.item.BaseItemBlockContainer; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.common.tile.TileWalrus; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class BlockWalrus extends BaseBlockContainer { public BlockWalrus() { @@ -100,10 +103,7 @@ public class BlockWalrus extends BaseBlockContainer { @Override @SideOnly(Side.CLIENT) - public void addInformation( - final ItemStack itemStack, - final EntityPlayer player, - final List toolTip, + public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedToolTips) { if (isShiftKeyDown()) { diff --git a/src/main/java/com/glodblock/github/common/block/FCBaseBlock.java b/src/main/java/com/glodblock/github/common/block/FCBaseBlock.java index 06fdaa8a..03969baf 100644 --- a/src/main/java/com/glodblock/github/common/block/FCBaseBlock.java +++ b/src/main/java/com/glodblock/github/common/block/FCBaseBlock.java @@ -1,18 +1,22 @@ package com.glodblock.github.common.block; -import appeng.block.AEBaseTileBlock; -import appeng.core.features.AEFeature; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.loader.IRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.EnumSet; import java.util.List; + import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import appeng.block.AEBaseTileBlock; +import appeng.core.features.AEFeature; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.loader.IRegister; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public abstract class FCBaseBlock extends AEBaseTileBlock implements IRegister { public FCBaseBlock(Material mat, String name) { @@ -40,14 +44,11 @@ public abstract class FCBaseBlock extends AEBaseTileBlock implements IRegister toolTip, + public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedToolTips) {} - public void addCheckedInformation( - ItemStack itemStack, EntityPlayer player, List toolTip, boolean advancedToolTips) { + public void addCheckedInformation(ItemStack itemStack, EntityPlayer player, List toolTip, + boolean advancedToolTips) { this.addInformation(itemStack, player, toolTip, advancedToolTips); } diff --git a/src/main/java/com/glodblock/github/common/item/BaseItemBlockContainer.java b/src/main/java/com/glodblock/github/common/item/BaseItemBlockContainer.java index 37538233..02f4b248 100644 --- a/src/main/java/com/glodblock/github/common/item/BaseItemBlockContainer.java +++ b/src/main/java/com/glodblock/github/common/item/BaseItemBlockContainer.java @@ -1,15 +1,19 @@ package com.glodblock.github.common.item; -import com.glodblock.github.common.block.BaseBlockContainer; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.List; + import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; +import com.glodblock.github.common.block.BaseBlockContainer; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class BaseItemBlockContainer extends ItemBlock { + private final BaseBlockContainer blockType; public BaseItemBlockContainer(Block id) { @@ -20,8 +24,8 @@ public class BaseItemBlockContainer extends ItemBlock { @Override @SideOnly(Side.CLIENT) @SuppressWarnings("unchecked") - public void addInformation( - final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedToolTips) { + public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List toolTip, + final boolean advancedToolTips) { blockType.addInformation(itemStack, player, toolTip, advancedToolTips); } } diff --git a/src/main/java/com/glodblock/github/common/item/FCBaseItem.java b/src/main/java/com/glodblock/github/common/item/FCBaseItem.java index 78f72400..a54ac758 100644 --- a/src/main/java/com/glodblock/github/common/item/FCBaseItem.java +++ b/src/main/java/com/glodblock/github/common/item/FCBaseItem.java @@ -1,9 +1,10 @@ package com.glodblock.github.common.item; -import com.glodblock.github.loader.IRegister; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import com.glodblock.github.loader.IRegister; + public abstract class FCBaseItem extends Item implements IRegister { public ItemStack stack(int size, int meta) { diff --git a/src/main/java/com/glodblock/github/common/item/FCBaseItemBlock.java b/src/main/java/com/glodblock/github/common/item/FCBaseItemBlock.java index 0c63d0e8..220e1b62 100644 --- a/src/main/java/com/glodblock/github/common/item/FCBaseItemBlock.java +++ b/src/main/java/com/glodblock/github/common/item/FCBaseItemBlock.java @@ -1,15 +1,20 @@ package com.glodblock.github.common.item; -import appeng.block.AEBaseItemBlock; -import com.glodblock.github.common.block.FCBaseBlock; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.List; + import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import appeng.block.AEBaseItemBlock; + +import com.glodblock.github.common.block.FCBaseBlock; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class FCBaseItemBlock extends AEBaseItemBlock { + private final FCBaseBlock blockType; public FCBaseItemBlock(Block id) { @@ -18,10 +23,7 @@ public class FCBaseItemBlock extends AEBaseItemBlock { } @SideOnly(Side.CLIENT) - public void addCheckedInformation( - final ItemStack itemStack, - final EntityPlayer player, - final List toolTip, + public void addCheckedInformation(final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedToolTips) { blockType.addCheckedInformation(itemStack, player, toolTip, advancedToolTips); super.addCheckedInformation(itemStack, player, toolTip, advancedToolTips); diff --git a/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java b/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java index 1698e96b..d0cb0824 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java +++ b/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java @@ -1,5 +1,22 @@ package com.glodblock.github.common.item; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; + +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.event.ForgeEventFactory; + import appeng.api.AEApi; import appeng.api.config.FuzzyMode; import appeng.api.config.IncludeExclude; @@ -18,6 +35,7 @@ import appeng.items.contents.CellUpgrades; import appeng.util.InventoryAdaptor; import appeng.util.Platform; import appeng.util.ReadableNumberConverter; + import com.glodblock.github.FluidCraft; import com.glodblock.github.common.Config; import com.glodblock.github.common.storage.CellType; @@ -29,27 +47,14 @@ import com.glodblock.github.loader.IRegister; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; import com.google.common.base.Optional; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.List; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IIcon; -import net.minecraft.util.StatCollector; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.ForgeEventFactory; public class ItemBasicFluidStorageCell extends AEBaseItem implements IStorageFluidCell, IRegister { + private final CellType component; private final int totalBytes; private final int perType; @@ -122,8 +127,8 @@ public class ItemBasicFluidStorageCell extends AEBaseItem public void registerIcons(IIconRegister iconRegister) { icon.put( this.totalBytes / 1024, - iconRegister.registerIcon( - NameConst.RES_KEY + NameConst.ITEM_FLUID_STORAGE + "." + this.totalBytes / 1024)); + iconRegister + .registerIcon(NameConst.RES_KEY + NameConst.ITEM_FLUID_STORAGE + "." + this.totalBytes / 1024)); } @Override @@ -134,34 +139,49 @@ public class ItemBasicFluidStorageCell extends AEBaseItem } @Override - public void addCheckedInformation( - final ItemStack stack, final EntityPlayer player, final List lines, final boolean displayMoreInfo) { - final IMEInventoryHandler inventory = - AEApi.instance().registries().cell().getCellInventory(stack, null, StorageChannel.FLUIDS); + public void addCheckedInformation(final ItemStack stack, final EntityPlayer player, final List lines, + final boolean displayMoreInfo) { + final IMEInventoryHandler inventory = AEApi.instance().registries().cell() + .getCellInventory(stack, null, StorageChannel.FLUIDS); if (inventory instanceof IFluidCellInventoryHandler) { final IFluidCellInventoryHandler handler = (IFluidCellInventoryHandler) inventory; final IFluidCellInventory cellInventory = handler.getCellInv(); if (cellInventory != null) { - lines.add(EnumChatFormatting.WHITE + String.valueOf(cellInventory.getUsedBytes()) - + EnumChatFormatting.GRAY + " " + GuiText.Of.getLocal() + " " - + EnumChatFormatting.DARK_GREEN + cellInventory.getTotalBytes() + " " - + EnumChatFormatting.GRAY + GuiText.BytesUsed.getLocal()); - lines.add(EnumChatFormatting.WHITE + String.valueOf(cellInventory.getStoredFluidTypes()) - + EnumChatFormatting.GRAY + " " + GuiText.Of.getLocal() + " " - + EnumChatFormatting.DARK_GREEN + cellInventory.getTotalFluidTypes() + " " - + EnumChatFormatting.GRAY + GuiText.Types.getLocal()); + lines.add( + EnumChatFormatting.WHITE + String.valueOf(cellInventory.getUsedBytes()) + + EnumChatFormatting.GRAY + + " " + + GuiText.Of.getLocal() + + " " + + EnumChatFormatting.DARK_GREEN + + cellInventory.getTotalBytes() + + " " + + EnumChatFormatting.GRAY + + GuiText.BytesUsed.getLocal()); + lines.add( + EnumChatFormatting.WHITE + String.valueOf(cellInventory.getStoredFluidTypes()) + + EnumChatFormatting.GRAY + + " " + + GuiText.Of.getLocal() + + " " + + EnumChatFormatting.DARK_GREEN + + cellInventory.getTotalFluidTypes() + + " " + + EnumChatFormatting.GRAY + + GuiText.Types.getLocal()); if (GuiScreen.isCtrlKeyDown()) { if (cellInventory.getStoredFluidTypes() > 0) { lines.add(StatCollector.translateToLocal(NameConst.TT_CELL_CONTENTS)); for (IAEFluidStack fluid : cellInventory.getContents()) { if (fluid != null) { - lines.add(String.format( - " %s x%s mB", - fluid.getFluidStack().getLocalizedName(), - format.toWideReadableForm(fluid.getStackSize()))); + lines.add( + String.format( + " %s x%s mB", + fluid.getFluidStack().getLocalizedName(), + format.toWideReadableForm(fluid.getStackSize()))); } } } else { @@ -172,17 +192,14 @@ public class ItemBasicFluidStorageCell extends AEBaseItem } if (handler.isPreformatted()) { - final String list = (handler.getIncludeExcludeMode() == IncludeExclude.WHITELIST - ? GuiText.Included - : GuiText.Excluded) - .getLocal(); + final String list = (handler.getIncludeExcludeMode() == IncludeExclude.WHITELIST ? GuiText.Included + : GuiText.Excluded).getLocal(); lines.add(GuiText.Partitioned.getLocal() + " - " + list + ' ' + GuiText.Precise.getLocal()); if (GuiScreen.isShiftKeyDown()) { lines.add(GuiText.Filter.getLocal() + ": "); for (IAEFluidStack aeFluidStack : handler.getPartitionInv()) { - if (aeFluidStack != null) - lines.add(" " + aeFluidStack.getFluidStack().getLocalizedName()); + if (aeFluidStack != null) lines.add(" " + aeFluidStack.getFluidStack().getLocalizedName()); } } else { lines.add(StatCollector.translateToLocal(NameConst.TT_SHIFT_FOR_MORE)); @@ -273,8 +290,8 @@ public class ItemBasicFluidStorageCell extends AEBaseItem return false; } final InventoryPlayer playerInventory = player.inventory; - final IMEInventoryHandler inv = - AEApi.instance().registries().cell().getCellInventory(stack, null, StorageChannel.FLUIDS); + final IMEInventoryHandler inv = AEApi.instance().registries().cell() + .getCellInventory(stack, null, StorageChannel.FLUIDS); if (inv != null && playerInventory.getCurrentItem() == stack) { final InventoryAdaptor ia = InventoryAdaptor.getAdaptor(player, ForgeDirection.UNKNOWN); final IItemList list = inv.getAvailableItems(StorageChannel.FLUIDS.createList()); @@ -298,12 +315,8 @@ public class ItemBasicFluidStorageCell extends AEBaseItem } // drop empty storage cell case - for (final ItemStack storageCellStack : AEApi.instance() - .definitions() - .materials() - .emptyStorageCell() - .maybeStack(1) - .asSet()) { + for (final ItemStack storageCellStack : AEApi.instance().definitions().materials() + .emptyStorageCell().maybeStack(1).asSet()) { final ItemStack extraA = ia.addItems(storageCellStack); if (extraA != null) { player.dropPlayerItemWithRandomChoice(extraA, false); @@ -320,28 +333,15 @@ public class ItemBasicFluidStorageCell extends AEBaseItem } @Override - public boolean onItemUseFirst( - final ItemStack stack, - final EntityPlayer player, - final World world, - final int x, - final int y, - final int z, - final int side, - final float hitX, - final float hitY, - final float hitZ) { + public boolean onItemUseFirst(final ItemStack stack, final EntityPlayer player, final World world, final int x, + final int y, final int z, final int side, final float hitX, final float hitY, final float hitZ) { if (ForgeEventFactory.onItemUseStart(player, stack, 1) <= 0) return true; return this.disassembleDrive(stack, world, player); } @Override public ItemStack getContainerItem(final ItemStack itemStack) { - for (final ItemStack stack : AEApi.instance() - .definitions() - .materials() - .emptyStorageCell() - .maybeStack(1) + for (final ItemStack stack : AEApi.instance().definitions().materials().emptyStorageCell().maybeStack(1) .asSet()) { return stack; } diff --git a/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStoragePart.java b/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStoragePart.java index 6d601423..bbbfd526 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStoragePart.java +++ b/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStoragePart.java @@ -1,15 +1,8 @@ package com.glodblock.github.common.item; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.Config; -import com.glodblock.github.common.storage.CellType; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.HashMap; import java.util.List; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; @@ -18,6 +11,16 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.Config; +import com.glodblock.github.common.storage.CellType; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemBasicFluidStoragePart extends FCBaseItem { public static final int types = 8; @@ -42,7 +45,9 @@ public class ItemBasicFluidStoragePart extends FCBaseItem { public String getItemStackDisplayName(ItemStack stack) { int meta = stack.getItemDamage(); return StatCollector.translateToLocalFormatted( - "item.fluid_part." + meta + ".name", CellType.getTypeColor(meta), EnumChatFormatting.RESET); + "item.fluid_part." + meta + ".name", + CellType.getTypeColor(meta), + EnumChatFormatting.RESET); } @Override diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidConversionMonitor.java b/src/main/java/com/glodblock/github/common/item/ItemFluidConversionMonitor.java index 454f1b7e..1324c804 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidConversionMonitor.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidConversionMonitor.java @@ -1,19 +1,22 @@ package com.glodblock.github.common.item; -import appeng.api.AEApi; -import appeng.api.parts.IPartItem; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.parts.PartFluidConversionMonitor; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import appeng.api.AEApi; +import appeng.api.parts.IPartItem; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.parts.PartFluidConversionMonitor; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemFluidConversionMonitor extends FCBaseItem implements IPartItem { public ItemFluidConversionMonitor() { @@ -23,17 +26,8 @@ public class ItemFluidConversionMonitor extends FCBaseItem implements IPartItem } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidDrop.java b/src/main/java/com/glodblock/github/common/item/ItemFluidDrop.java index f050dc36..2441ff20 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidDrop.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidDrop.java @@ -1,18 +1,10 @@ package com.glodblock.github.common.item; -import appeng.api.storage.data.IAEFluidStack; -import appeng.api.storage.data.IAEItemStack; -import appeng.util.item.AEFluidStack; -import appeng.util.item.AEItemStack; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.loader.ItemAndBlockHolder; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.List; import java.util.Objects; + import javax.annotation.Nullable; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; @@ -27,6 +19,19 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import appeng.api.storage.data.IAEFluidStack; +import appeng.api.storage.data.IAEItemStack; +import appeng.util.item.AEFluidStack; +import appeng.util.item.AEItemStack; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.loader.ItemAndBlockHolder; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemFluidDrop extends FCBaseItem { @SideOnly(Side.CLIENT) @@ -48,8 +53,8 @@ public class ItemFluidDrop extends FCBaseItem { if (ItemFluidPacket.isDisplay(stack)) { return fluid != null ? fluid.getLocalizedName() : StatCollector.translateToLocalFormatted("error.unknown"); } - return StatCollector.translateToLocalFormatted( - "item.fluid_drop.name", fluid == null ? "???" : fluid.getLocalizedName()); + return StatCollector + .translateToLocalFormatted("item.fluid_drop.name", fluid == null ? "???" : fluid.getLocalizedName()); } @Override diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidEncodedPattern.java b/src/main/java/com/glodblock/github/common/item/ItemFluidEncodedPattern.java index e2cb5b40..afe3b433 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidEncodedPattern.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidEncodedPattern.java @@ -1,14 +1,16 @@ package com.glodblock.github.common.item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + import appeng.api.networking.crafting.ICraftingPatternDetails; import appeng.items.misc.ItemEncodedPattern; + import com.glodblock.github.FluidCraft; import com.glodblock.github.loader.IRegister; import com.glodblock.github.util.FluidPatternDetails; import com.glodblock.github.util.NameConst; import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; public class ItemFluidEncodedPattern extends ItemEncodedPattern implements IRegister { diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidExportBus.java b/src/main/java/com/glodblock/github/common/item/ItemFluidExportBus.java index 1871dafc..454a511e 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidExportBus.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidExportBus.java @@ -1,20 +1,24 @@ package com.glodblock.github.common.item; +import javax.annotation.Nullable; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + import appeng.api.AEApi; import appeng.api.parts.IPartItem; + import com.glodblock.github.FluidCraft; import com.glodblock.github.common.Config; import com.glodblock.github.common.parts.PartFluidExportBus; import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.util.NameConst; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import javax.annotation.Nullable; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; public class ItemFluidExportBus extends FCBaseItem implements IPartItem { @@ -31,17 +35,8 @@ public class ItemFluidExportBus extends FCBaseItem implements IPartItem { } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidImportBus.java b/src/main/java/com/glodblock/github/common/item/ItemFluidImportBus.java index 1428d0ab..14faece8 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidImportBus.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidImportBus.java @@ -1,20 +1,24 @@ package com.glodblock.github.common.item; +import javax.annotation.Nullable; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + import appeng.api.AEApi; import appeng.api.parts.IPartItem; + import com.glodblock.github.FluidCraft; import com.glodblock.github.common.Config; import com.glodblock.github.common.parts.PartFluidImportBus; import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.util.NameConst; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import javax.annotation.Nullable; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; public class ItemFluidImportBus extends FCBaseItem implements IPartItem { @@ -31,17 +35,8 @@ public class ItemFluidImportBus extends FCBaseItem implements IPartItem { } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidLevelEmitter.java b/src/main/java/com/glodblock/github/common/item/ItemFluidLevelEmitter.java index 814b816a..8204c465 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidLevelEmitter.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidLevelEmitter.java @@ -1,21 +1,25 @@ package com.glodblock.github.common.item; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import org.jetbrains.annotations.Nullable; + import appeng.api.AEApi; import appeng.api.parts.IPart; import appeng.api.parts.IPartItem; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.parts.PartFluidLevelEmitter; import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.util.NameConst; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; public class ItemFluidLevelEmitter extends FCBaseItem implements IPartItem { @@ -32,17 +36,8 @@ public class ItemFluidLevelEmitter extends FCBaseItem implements IPartItem { } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidPacket.java b/src/main/java/com/glodblock/github/common/item/ItemFluidPacket.java index ec320639..29fa9867 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidPacket.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidPacket.java @@ -1,17 +1,10 @@ package com.glodblock.github.common.item; -import appeng.api.storage.data.IAEFluidStack; -import appeng.api.storage.data.IAEItemStack; -import appeng.util.item.AEItemStack; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.loader.ItemAndBlockHolder; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.List; import java.util.Objects; + import javax.annotation.Nullable; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -23,6 +16,18 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import appeng.api.storage.data.IAEFluidStack; +import appeng.api.storage.data.IAEItemStack; +import appeng.util.item.AEItemStack; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.loader.ItemAndBlockHolder; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemFluidPacket extends FCBaseItem { public ItemFluidPacket() { @@ -34,8 +39,8 @@ public class ItemFluidPacket extends FCBaseItem { if (stack == null || !stack.hasTagCompound()) { return null; } - FluidStack fluid = FluidStack.loadFluidStackFromNBT( - Objects.requireNonNull(stack.getTagCompound()).getCompoundTag("FluidStack")); + FluidStack fluid = FluidStack + .loadFluidStackFromNBT(Objects.requireNonNull(stack.getTagCompound()).getCompoundTag("FluidStack")); return (fluid != null && fluid.amount > 0) ? fluid : null; } @@ -46,8 +51,7 @@ public class ItemFluidPacket extends FCBaseItem { if (display) { return fluid != null ? fluid.getLocalizedName() : super.getItemStackDisplayName(stack); } - return fluid != null - ? String.format("%s, %,d mB", fluid.getLocalizedName(), fluid.amount) + return fluid != null ? String.format("%s, %,d mB", fluid.getLocalizedName(), fluid.amount) : super.getItemStackDisplayName(stack); } @@ -65,8 +69,7 @@ public class ItemFluidPacket extends FCBaseItem { boolean display = isDisplay(stack); if (display) return; if (fluid != null) { - for (String line : StatCollector.translateToLocalFormatted(NameConst.TT_FLUID_PACKET) - .split("\\\\n")) { + for (String line : StatCollector.translateToLocalFormatted(NameConst.TT_FLUID_PACKET).split("\\\\n")) { tooltip.add(EnumChatFormatting.GRAY + line); } } else { diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidStorageMonitor.java b/src/main/java/com/glodblock/github/common/item/ItemFluidStorageMonitor.java index d1be434b..4a6e25a7 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidStorageMonitor.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidStorageMonitor.java @@ -1,19 +1,22 @@ package com.glodblock.github.common.item; -import appeng.api.AEApi; -import appeng.api.parts.IPartItem; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.parts.PartFluidStorageMonitor; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import appeng.api.AEApi; +import appeng.api.parts.IPartItem; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.parts.PartFluidStorageMonitor; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemFluidStorageMonitor extends FCBaseItem implements IPartItem { public ItemFluidStorageMonitor() { @@ -23,17 +26,8 @@ public class ItemFluidStorageMonitor extends FCBaseItem implements IPartItem { } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemPartFluidInterface.java b/src/main/java/com/glodblock/github/common/item/ItemPartFluidInterface.java index 72e8180a..6d3080cb 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemPartFluidInterface.java +++ b/src/main/java/com/glodblock/github/common/item/ItemPartFluidInterface.java @@ -1,20 +1,24 @@ package com.glodblock.github.common.item; -import appeng.api.AEApi; -import appeng.api.parts.IPartItem; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.parts.PartFluidInterface; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import javax.annotation.Nullable; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import appeng.api.AEApi; +import appeng.api.parts.IPartItem; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.parts.PartFluidInterface; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemPartFluidInterface extends FCBaseItem implements IPartItem { public ItemPartFluidInterface() { @@ -30,17 +34,8 @@ public class ItemPartFluidInterface extends FCBaseItem implements IPartItem { } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemPartFluidPatternTerminal.java b/src/main/java/com/glodblock/github/common/item/ItemPartFluidPatternTerminal.java index f4309868..11fb6f3a 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemPartFluidPatternTerminal.java +++ b/src/main/java/com/glodblock/github/common/item/ItemPartFluidPatternTerminal.java @@ -1,20 +1,24 @@ package com.glodblock.github.common.item; -import appeng.api.AEApi; -import appeng.api.parts.IPartItem; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.parts.PartFluidPatternTerminal; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import javax.annotation.Nullable; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import appeng.api.AEApi; +import appeng.api.parts.IPartItem; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.parts.PartFluidPatternTerminal; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemPartFluidPatternTerminal extends FCBaseItem implements IPartItem { public ItemPartFluidPatternTerminal() { @@ -30,17 +34,8 @@ public class ItemPartFluidPatternTerminal extends FCBaseItem implements IPartIte } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemPartFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/common/item/ItemPartFluidPatternTerminalEx.java index 89679e6c..72b888c8 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemPartFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/common/item/ItemPartFluidPatternTerminalEx.java @@ -1,20 +1,24 @@ package com.glodblock.github.common.item; -import appeng.api.AEApi; -import appeng.api.parts.IPartItem; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.parts.PartFluidPatternTerminalEx; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import javax.annotation.Nullable; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import appeng.api.AEApi; +import appeng.api.parts.IPartItem; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.parts.PartFluidPatternTerminalEx; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemPartFluidPatternTerminalEx extends FCBaseItem implements IPartItem { public ItemPartFluidPatternTerminalEx() { @@ -30,17 +34,8 @@ public class ItemPartFluidPatternTerminalEx extends FCBaseItem implements IPartI } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemPartFluidStorageBus.java b/src/main/java/com/glodblock/github/common/item/ItemPartFluidStorageBus.java index 221ab3a7..2b2b9270 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemPartFluidStorageBus.java +++ b/src/main/java/com/glodblock/github/common/item/ItemPartFluidStorageBus.java @@ -1,20 +1,24 @@ package com.glodblock.github.common.item; -import appeng.api.AEApi; -import appeng.api.parts.IPartItem; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.parts.PartFluidStorageBus; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import javax.annotation.Nullable; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import appeng.api.AEApi; +import appeng.api.parts.IPartItem; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.parts.PartFluidStorageBus; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemPartFluidStorageBus extends FCBaseItem implements IPartItem { public ItemPartFluidStorageBus() { @@ -30,17 +34,8 @@ public class ItemPartFluidStorageBus extends FCBaseItem implements IPartItem { } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemPartFluidTerminal.java b/src/main/java/com/glodblock/github/common/item/ItemPartFluidTerminal.java index f164d370..57cc21e7 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemPartFluidTerminal.java +++ b/src/main/java/com/glodblock/github/common/item/ItemPartFluidTerminal.java @@ -2,24 +2,30 @@ package com.glodblock.github.common.item; import static net.minecraft.client.gui.GuiScreen.isShiftKeyDown; -import appeng.api.AEApi; -import appeng.api.parts.IPartItem; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.parts.PartFluidTerminal; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.List; + import javax.annotation.Nullable; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.StatCollector; import net.minecraft.world.World; +import appeng.api.AEApi; +import appeng.api.parts.IPartItem; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.parts.PartFluidTerminal; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemPartFluidTerminal extends FCBaseItem implements IPartItem { + public ItemPartFluidTerminal() { this.setMaxStackSize(64); this.setUnlocalizedName(NameConst.ITEM_PART_FLUID_TERMINAL); @@ -33,17 +39,8 @@ public class ItemPartFluidTerminal extends FCBaseItem implements IPartItem { } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemPortableFluidCell.java b/src/main/java/com/glodblock/github/common/item/ItemPortableFluidCell.java index fadc2bba..492cafb8 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemPortableFluidCell.java +++ b/src/main/java/com/glodblock/github/common/item/ItemPortableFluidCell.java @@ -1,5 +1,17 @@ package com.glodblock.github.common.item; +import java.util.EnumSet; +import java.util.List; + +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.api.AEApi; import appeng.api.config.FuzzyMode; import appeng.api.storage.IMEInventoryHandler; @@ -11,6 +23,7 @@ import appeng.items.contents.CellConfig; import appeng.items.contents.CellUpgrades; import appeng.items.tools.powered.powersink.AEBasePoweredItem; import appeng.util.Platform; + import com.glodblock.github.FluidCraft; import com.glodblock.github.common.Config; import com.glodblock.github.common.storage.IFluidCellInventory; @@ -27,19 +40,10 @@ import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; import com.glodblock.github.util.RenderUtil; import com.google.common.base.Optional; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.EnumSet; -import java.util.List; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class ItemPortableFluidCell extends AEBasePoweredItem implements IStorageFluidCell, IItemInventory, IRegister { @@ -70,28 +74,43 @@ public class ItemPortableFluidCell extends AEBasePoweredItem @SideOnly(Side.CLIENT) @Override - public void addCheckedInformation( - final ItemStack stack, final EntityPlayer player, final List lines, final boolean displayMoreInfo) { + public void addCheckedInformation(final ItemStack stack, final EntityPlayer player, final List lines, + final boolean displayMoreInfo) { super.addCheckedInformation(stack, player, lines, displayMoreInfo); - final IMEInventoryHandler inventory = - AEApi.instance().registries().cell().getCellInventory(stack, null, StorageChannel.FLUIDS); + final IMEInventoryHandler inventory = AEApi.instance().registries().cell() + .getCellInventory(stack, null, StorageChannel.FLUIDS); if (inventory instanceof IFluidCellInventoryHandler) { final IFluidCellInventoryHandler handler = (IFluidCellInventoryHandler) inventory; final IFluidCellInventory cellInventory = handler.getCellInv(); if (cellInventory != null) { - lines.add(EnumChatFormatting.WHITE + String.valueOf(cellInventory.getUsedBytes()) - + EnumChatFormatting.GRAY + " " + GuiText.Of.getLocal() + " " - + EnumChatFormatting.DARK_GREEN + cellInventory.getTotalBytes() + " " - + EnumChatFormatting.GRAY + GuiText.BytesUsed.getLocal()); - lines.add(EnumChatFormatting.WHITE + String.valueOf(cellInventory.getStoredFluidTypes()) - + EnumChatFormatting.GRAY + " " + GuiText.Of.getLocal() + " " - + EnumChatFormatting.DARK_GREEN + cellInventory.getTotalFluidTypes() + " " - + EnumChatFormatting.GRAY + GuiText.Types.getLocal()); + lines.add( + EnumChatFormatting.WHITE + String.valueOf(cellInventory.getUsedBytes()) + + EnumChatFormatting.GRAY + + " " + + GuiText.Of.getLocal() + + " " + + EnumChatFormatting.DARK_GREEN + + cellInventory.getTotalBytes() + + " " + + EnumChatFormatting.GRAY + + GuiText.BytesUsed.getLocal()); + lines.add( + EnumChatFormatting.WHITE + String.valueOf(cellInventory.getStoredFluidTypes()) + + EnumChatFormatting.GRAY + + " " + + GuiText.Of.getLocal() + + " " + + EnumChatFormatting.DARK_GREEN + + cellInventory.getTotalFluidTypes() + + " " + + EnumChatFormatting.GRAY + + GuiText.Types.getLocal()); } } if (GuiScreen.isShiftKeyDown()) { - lines.addAll(RenderUtil.listFormattedStringToWidth( - StatCollector.translateToLocalFormatted(NameConst.TT_CELL_PORTABLE))); + lines.addAll( + RenderUtil.listFormattedStringToWidth( + StatCollector.translateToLocalFormatted(NameConst.TT_CELL_PORTABLE))); } else { lines.add(StatCollector.translateToLocal(NameConst.TT_SHIFT_FOR_MORE)); } diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidConversionMonitor.java b/src/main/java/com/glodblock/github/common/parts/PartFluidConversionMonitor.java index b9c6b934..f2c7e7af 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidConversionMonitor.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidConversionMonitor.java @@ -1,5 +1,19 @@ package com.glodblock.github.common.parts; +import java.util.Collections; +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidContainerItem; + +import org.apache.commons.lang3.tuple.MutablePair; + import appeng.api.config.Actionable; import appeng.api.networking.energy.IEnergySource; import appeng.api.networking.security.PlayerSource; @@ -8,21 +22,12 @@ import appeng.api.storage.data.IAEFluidStack; import appeng.me.GridAccessException; import appeng.util.InventoryAdaptor; import appeng.util.Platform; + import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.util.Util; -import java.util.Collections; -import java.util.List; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidContainerItem; -import org.apache.commons.lang3.tuple.MutablePair; public class PartFluidConversionMonitor extends PartFluidStorageMonitor { + public PartFluidConversionMonitor(ItemStack is) { super(is); } @@ -47,8 +52,7 @@ public class PartFluidConversionMonitor extends PartFluidStorageMonitor { } else { fluidStack = Util.FluidUtil.getFluidFromContainer(item); } - if (this.getDisplayed() == null - || fluidStack == null + if (this.getDisplayed() == null || fluidStack == null || fluidStack.getFluid() != ((IAEFluidStack) this.getDisplayed()).getFluid()) { return false; } @@ -59,18 +63,16 @@ public class PartFluidConversionMonitor extends PartFluidStorageMonitor { } final IEnergySource energy = this.getProxy().getEnergy(); final IMEMonitor cell = this.getProxy().getStorage().getFluidInventory(); - final IAEFluidStack input = - (IAEFluidStack) this.getDisplayed().copy().setStackSize(fluidStack.amount); - final IAEFluidStack failedToInsert = - Platform.poweredInsert(energy, cell, input, new PlayerSource(player, this)); + final IAEFluidStack input = (IAEFluidStack) this.getDisplayed().copy().setStackSize(fluidStack.amount); + final IAEFluidStack failedToInsert = Platform + .poweredInsert(energy, cell, input, new PlayerSource(player, this)); if (failedToInsert != null && failedToInsert.getStackSize() == input.getStackSize()) { return false; } else if (failedToInsert == null || failedToInsert.getStackSize() != input.getStackSize()) { if (item.getItem() instanceof ItemFluidPacket) { if (failedToInsert != null) { player.getCurrentEquippedItem() - .setTagCompound( - ItemFluidPacket.newStack(failedToInsert).getTagCompound()); + .setTagCompound(ItemFluidPacket.newStack(failedToInsert).getTagCompound()); return true; } } else { @@ -85,9 +87,7 @@ public class PartFluidConversionMonitor extends PartFluidStorageMonitor { } else if (FluidContainerRegistry.isContainer(tmp)) { IAEFluidStack insertedFluid = input.copy(); insertedFluid.decStackSize(failedToInsert.getStackSize()); - this.getProxy() - .getStorage() - .getFluidInventory() + this.getProxy().getStorage().getFluidInventory() .extractItems(insertedFluid, Actionable.MODULATE, new PlayerSource(player, this)); return false; } @@ -119,15 +119,14 @@ public class PartFluidConversionMonitor extends PartFluidStorageMonitor { } final IEnergySource energy = this.getProxy().getEnergy(); - final IMEMonitor cell = - this.getProxy().getStorage().getFluidInventory(); + final IMEMonitor cell = this.getProxy().getStorage().getFluidInventory(); ItemStack tank = eq.copy(); tank.stackSize = 1; MutablePair fillStack = Util.FluidUtil.fillStack(tank, input.getFluidStack()); input.setStackSize(fillStack.left); - final IAEFluidStack retrieved = - Platform.poweredExtraction(energy, cell, input, new PlayerSource(player, this)); + final IAEFluidStack retrieved = Platform + .poweredExtraction(energy, cell, input, new PlayerSource(player, this)); if (retrieved != null) { if (!player.inventory.addItemStackToInventory(fillStack.right)) { player.entityDropItem(fillStack.right.copy(), 0); diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidExportBus.java b/src/main/java/com/glodblock/github/common/parts/PartFluidExportBus.java index dca50e24..93d4bbeb 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidExportBus.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidExportBus.java @@ -1,5 +1,11 @@ package com.glodblock.github.common.parts; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.config.*; import appeng.api.networking.IGridNode; import appeng.api.networking.crafting.ICraftingGrid; @@ -22,19 +28,16 @@ import appeng.me.GridAccessException; import appeng.util.InventoryAdaptor; import appeng.util.item.AEFluidStack; import appeng.util.item.AEItemStack; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.common.parts.base.FCSharedFluidBus; import com.glodblock.github.inventory.FluidConvertingInventoryAdaptor; import com.google.common.collect.ImmutableSet; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraftforge.fluids.IFluidHandler; public class PartFluidExportBus extends FCSharedFluidBus implements ICraftingRequester { @@ -83,12 +86,11 @@ public class PartFluidExportBus extends FCSharedFluidBus implements ICraftingReq final InventoryAdaptor destination = this.getHandler(te); final ICraftingGrid cg = this.getProxy().getCrafting(); final IFluidHandler fh = (IFluidHandler) te; - final IMEMonitor inv = - this.getProxy().getStorage().getFluidInventory(); + final IMEMonitor inv = this.getProxy().getStorage().getFluidInventory(); for (int i = 0; i < this.getInventoryByName("config").getSizeInventory(); i++) { - IAEFluidStack fluid = AEFluidStack.create(ItemFluidPacket.getFluidStack( - this.getInventoryByName("config").getStackInSlot(i))); + IAEFluidStack fluid = AEFluidStack + .create(ItemFluidPacket.getFluidStack(this.getInventoryByName("config").getStackInSlot(i))); if (fluid != null) { boolean isAllowed = true; @@ -175,8 +177,8 @@ public class PartFluidExportBus extends FCSharedFluidBus implements ICraftingReq @Override @SideOnly(Side.CLIENT) - public void renderStatic( - final int x, final int y, final int z, final IPartRenderHelper rh, final RenderBlocks renderer) { + public void renderStatic(final int x, final int y, final int z, final IPartRenderHelper rh, + final RenderBlocks renderer) { this.setRenderCache(rh.useSimplifiedRendering(x, y, z, this, this.getRenderCache())); rh.setTexture( CableBusTextures.PartExportSides.getIcon(), @@ -228,9 +230,7 @@ public class PartFluidExportBus extends FCSharedFluidBus implements ICraftingReq } protected InventoryAdaptor getHandler(TileEntity target) { - return target != null - ? FluidConvertingInventoryAdaptor.wrap(target, this.getSide().getOpposite()) - : null; + return target != null ? FluidConvertingInventoryAdaptor.wrap(target, this.getSide().getOpposite()) : null; } @Override diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidImportBus.java b/src/main/java/com/glodblock/github/common/parts/PartFluidImportBus.java index e9c983c9..5045a42f 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidImportBus.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidImportBus.java @@ -1,5 +1,13 @@ package com.glodblock.github.common.parts; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.config.*; import appeng.api.networking.IGridNode; import appeng.api.networking.security.BaseActionSource; @@ -13,18 +21,13 @@ import appeng.api.storage.data.IAEFluidStack; import appeng.client.texture.CableBusTextures; import appeng.me.GridAccessException; import appeng.util.item.AEFluidStack; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.common.parts.base.FCSharedFluidBus; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; -import net.minecraftforge.fluids.IFluidHandler; public class PartFluidImportBus extends FCSharedFluidBus { @@ -65,8 +68,7 @@ public class PartFluidImportBus extends FCSharedFluidBus { if (te instanceof IFluidHandler) { try { final IFluidHandler fh = (IFluidHandler) te; - final IMEMonitor inv = - this.getProxy().getStorage().getFluidInventory(); + final IMEMonitor inv = this.getProxy().getStorage().getFluidInventory(); int maxDrain = this.calculateAmountToSend(); boolean drained = false; @@ -84,8 +86,8 @@ public class PartFluidImportBus extends FCSharedFluidBus { final AEFluidStack aeFluidStack = AEFluidStack.create(fluidStack); if (aeFluidStack != null) { - final IAEFluidStack notInserted = - inv.injectItems(aeFluidStack, Actionable.MODULATE, this.source); + final IAEFluidStack notInserted = inv + .injectItems(aeFluidStack, Actionable.MODULATE, this.source); if (notInserted != null && notInserted.getStackSize() > 0) { aeFluidStack.decStackSize(notInserted.getStackSize()); @@ -113,8 +115,8 @@ public class PartFluidImportBus extends FCSharedFluidBus { private boolean isInFilter(FluidStack fluid) { for (int i = 0; i < this.getInventoryByName("config").getSizeInventory(); i++) { - final IAEFluidStack stack = AEFluidStack.create(ItemFluidPacket.getFluidStack( - this.getInventoryByName("config").getStackInSlot(i))); + final IAEFluidStack stack = AEFluidStack + .create(ItemFluidPacket.getFluidStack(this.getInventoryByName("config").getStackInSlot(i))); if (stack != null && stack.getFluidStack().equals(fluid)) { return true; } @@ -124,8 +126,8 @@ public class PartFluidImportBus extends FCSharedFluidBus { private boolean filterEnabled() { for (int i = 0; i < this.getInventoryByName("config").getSizeInventory(); i++) { - final IAEFluidStack stack = AEFluidStack.create(ItemFluidPacket.getFluidStack( - this.getInventoryByName("config").getStackInSlot(i))); + final IAEFluidStack stack = AEFluidStack + .create(ItemFluidPacket.getFluidStack(this.getInventoryByName("config").getStackInSlot(i))); if (stack != null) { return true; } @@ -168,8 +170,8 @@ public class PartFluidImportBus extends FCSharedFluidBus { @Override @SideOnly(Side.CLIENT) - public void renderStatic( - final int x, final int y, final int z, final IPartRenderHelper rh, final RenderBlocks renderer) { + public void renderStatic(final int x, final int y, final int z, final IPartRenderHelper rh, + final RenderBlocks renderer) { this.setRenderCache(rh.useSimplifiedRendering(x, y, z, this, this.getRenderCache())); rh.setTexture( CableBusTextures.PartImportSides.getIcon(), diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidInterface.java b/src/main/java/com/glodblock/github/common/parts/PartFluidInterface.java index ef0d38eb..bd07a48d 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidInterface.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidInterface.java @@ -1,5 +1,18 @@ package com.glodblock.github.common.parts; +import java.io.IOException; +import java.util.Objects; + +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; + import appeng.api.config.Actionable; import appeng.api.config.Upgrades; import appeng.api.networking.IGridNode; @@ -21,6 +34,7 @@ import appeng.parts.misc.PartInterface; import appeng.tile.inventory.AppEngInternalAEInventory; import appeng.util.Platform; import appeng.util.item.AEFluidStack; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.AEFluidInventory; @@ -31,21 +45,11 @@ import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.DualityFluidInterface; import com.glodblock.github.util.Util; + import cpw.mods.fml.common.network.ByteBufUtils; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; -import java.io.IOException; -import java.util.Objects; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; public class PartFluidInterface extends PartInterface implements IDualHost { @@ -59,8 +63,8 @@ public class PartFluidInterface extends PartInterface implements IDualHost { @Override @SideOnly(Side.CLIENT) - public void renderStatic( - final int x, final int y, final int z, final IPartRenderHelper rh, final RenderBlocks renderer) { + public void renderStatic(final int x, final int y, final int z, final IPartRenderHelper rh, + final RenderBlocks renderer) { this.setRenderCache(rh.useSimplifiedRendering(x, y, z, this, this.getRenderCache())); rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), @@ -200,10 +204,7 @@ public class PartFluidInterface extends PartInterface implements IDualHost { private IMEMonitor getFluidGrid() { try { - return getProxy() - .getGrid() - .getCache(IStorageGrid.class) - .getFluidInventory(); + return getProxy().getGrid().getCache(IStorageGrid.class).getFluidInventory(); } catch (GridAccessException e) { return null; } @@ -284,7 +285,8 @@ public class PartFluidInterface extends PartInterface implements IDualHost { public void setConfig(int id, IAEFluidStack fluid) { if (id >= 0 && id < 6) { config.setInventorySlotContents( - id, ItemFluidPacket.newDisplayStack(fluid == null ? null : fluid.getFluidStack())); + id, + ItemFluidPacket.newDisplayStack(fluid == null ? null : fluid.getFluidStack())); fluidDuality.getConfig().setFluidInSlot(id, fluidDuality.getStandardFluid(fluid)); } } diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidLevelEmitter.java b/src/main/java/com/glodblock/github/common/parts/PartFluidLevelEmitter.java index a5077e89..b59ba039 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidLevelEmitter.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidLevelEmitter.java @@ -1,5 +1,22 @@ package com.glodblock.github.common.parts; +import java.util.Objects; +import java.util.Random; + +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.config.*; import appeng.api.networking.IGridNode; import appeng.api.networking.crafting.*; @@ -33,28 +50,15 @@ import appeng.parts.automation.PartUpgradeable; import appeng.tile.inventory.AppEngInternalAEInventory; import appeng.tile.inventory.InvOperation; import appeng.util.Platform; + import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.Util; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.Objects; -import java.util.Random; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; public class PartFluidLevelEmitter extends PartUpgradeable implements IStackWatcherHost, ICraftingWatcherHost, IMEMonitorHandlerReceiver, IGridTickable { @@ -127,10 +131,9 @@ public class PartFluidLevelEmitter extends PartUpgradeable return false; } - final boolean flipState = - this.getConfigManager().getSetting(Settings.REDSTONE_EMITTER) == RedstoneMode.LOW_SIGNAL; - return flipState - ? this.reportingValue >= this.lastReportedValue + 1 + final boolean flipState = this.getConfigManager().getSetting(Settings.REDSTONE_EMITTER) + == RedstoneMode.LOW_SIGNAL; + return flipState ? this.reportingValue >= this.lastReportedValue + 1 : this.reportingValue < this.lastReportedValue + 1; } @@ -211,12 +214,8 @@ public class PartFluidLevelEmitter extends PartUpgradeable } @Override - public void onStackChange( - final IItemList o, - final IAEStack fullStack, - final IAEStack diffStack, - final BaseActionSource src, - final StorageChannel chan) { + public void onStackChange(final IItemList o, final IAEStack fullStack, final IAEStack diffStack, + final BaseActionSource src, final StorageChannel chan) { if (chan == StorageChannel.FLUIDS && fullStack.equals(this.getIAEFluidStack())) { this.lastReportedValue = fullStack.getStackSize(); this.updateState(); @@ -257,9 +256,7 @@ public class PartFluidLevelEmitter extends PartUpgradeable } @Override - public void postChange( - final IBaseMonitor monitor, - final Iterable change, + public void postChange(final IBaseMonitor monitor, final Iterable change, final BaseActionSource actionSource) { if (canDoWork()) { if (delayedUpdatesQueued) { @@ -504,8 +501,8 @@ public class PartFluidLevelEmitter extends PartUpgradeable @Override @SideOnly(Side.CLIENT) - public void renderStatic( - final int x, final int y, final int z, final IPartRenderHelper rh, final RenderBlocks renderer) { + public void renderStatic(final int x, final int y, final int z, final IPartRenderHelper rh, + final RenderBlocks renderer) { rh.setTexture(this.getItemStack().getIconIndex()); // rh.setTexture( CableBusTextures.ItemPartLevelEmitterOn.getIcon() ); @@ -518,8 +515,7 @@ public class PartFluidLevelEmitter extends PartUpgradeable renderer.renderAllFaces = true; final Tessellator tess = Tessellator.instance; - tess.setBrightness(rh.getBlock() - .getMixedBrightnessForBlock(this.getHost().getTile().getWorldObj(), x, y, z)); + tess.setBrightness(rh.getBlock().getMixedBrightnessForBlock(this.getHost().getTile().getWorldObj(), x, y, z)); tess.setColorOpaque_F(1.0F, 1.0F, 1.0F); this.renderTorchAtAngle(x, y, z); @@ -584,12 +580,8 @@ public class PartFluidLevelEmitter extends PartUpgradeable } @Override - public void onChangeInventory( - final IInventory inv, - final int slot, - final InvOperation mc, - final ItemStack removedStack, - final ItemStack newStack) { + public void onChangeInventory(final IInventory inv, final int slot, final InvOperation mc, + final ItemStack removedStack, final ItemStack newStack) { if (inv == this.config) { this.configureWatchers(); } diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminal.java b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminal.java index 76a3889a..d3759126 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminal.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminal.java @@ -1,18 +1,20 @@ package com.glodblock.github.common.parts; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + import appeng.api.implementations.ICraftingPatternItem; import appeng.api.networking.crafting.ICraftingPatternDetails; import appeng.api.storage.data.IAEItemStack; import appeng.tile.inventory.BiggerAppEngInventory; import appeng.tile.inventory.InvOperation; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.common.parts.base.FCFluidEncodeTerminal; import com.glodblock.github.inventory.gui.GuiType; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; public class PartFluidPatternTerminal extends FCFluidEncodeTerminal { @@ -35,18 +37,14 @@ public class PartFluidPatternTerminal extends FCFluidEncodeTerminal { } @Override - public void onChangeInventory( - final IInventory inv, - final int slot, - final InvOperation mc, - final ItemStack removedStack, - final ItemStack newStack) { + public void onChangeInventory(final IInventory inv, final int slot, final InvOperation mc, + final ItemStack removedStack, final ItemStack newStack) { if (inv == this.pattern && slot == 1) { final ItemStack is = inv.getStackInSlot(1); if (is != null && is.getItem() instanceof ICraftingPatternItem) { final ICraftingPatternItem pattern = (ICraftingPatternItem) is.getItem(); - final ICraftingPatternDetails details = - pattern.getPatternForItem(is, this.getHost().getTile().getWorldObj()); + final ICraftingPatternDetails details = pattern + .getPatternForItem(is, this.getHost().getTile().getWorldObj()); if (details != null) { final IAEItemStack[] inItems = details.getInputs(); final IAEItemStack[] outItems = details.getOutputs(); @@ -70,8 +68,8 @@ public class PartFluidPatternTerminal extends FCFluidEncodeTerminal { if (inItems[i] != null) { final IAEItemStack item = inItems[i]; if (item != null && item.getItem() instanceof ItemFluidDrop) { - ItemStack packet = - ItemFluidPacket.newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); + ItemStack packet = ItemFluidPacket + .newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); this.crafting.setInventorySlotContents(i, packet); } else this.crafting.setInventorySlotContents(i, item == null ? null : item.getItemStack()); } @@ -81,8 +79,8 @@ public class PartFluidPatternTerminal extends FCFluidEncodeTerminal { if (outItems[i] != null) { final IAEItemStack item = outItems[i]; if (item != null && item.getItem() instanceof ItemFluidDrop) { - ItemStack packet = - ItemFluidPacket.newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); + ItemStack packet = ItemFluidPacket + .newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); this.output.setInventorySlotContents(i, packet); } else this.output.setInventorySlotContents(i, item == null ? null : item.getItemStack()); } diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java index 16feb55d..adc4b07e 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java @@ -1,18 +1,20 @@ package com.glodblock.github.common.parts; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + import appeng.api.implementations.ICraftingPatternItem; import appeng.api.networking.crafting.ICraftingPatternDetails; import appeng.api.storage.data.IAEItemStack; import appeng.tile.inventory.BiggerAppEngInventory; import appeng.tile.inventory.InvOperation; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.common.parts.base.FCFluidEncodeTerminal; import com.glodblock.github.inventory.gui.GuiType; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; public class PartFluidPatternTerminalEx extends FCFluidEncodeTerminal { @@ -33,19 +35,15 @@ public class PartFluidPatternTerminalEx extends FCFluidEncodeTerminal { } @Override - public void onChangeInventory( - final IInventory inv, - final int slot, - final InvOperation mc, - final ItemStack removedStack, - final ItemStack newStack) { + public void onChangeInventory(final IInventory inv, final int slot, final InvOperation mc, + final ItemStack removedStack, final ItemStack newStack) { if (inv == this.pattern && slot == 1) { final ItemStack is = inv.getStackInSlot(1); if (is != null && is.getItem() instanceof ICraftingPatternItem) { final ICraftingPatternItem pattern = (ICraftingPatternItem) is.getItem(); - final ICraftingPatternDetails details = - pattern.getPatternForItem(is, this.getHost().getTile().getWorldObj()); + final ICraftingPatternDetails details = pattern + .getPatternForItem(is, this.getHost().getTile().getWorldObj()); if (details != null) { final IAEItemStack[] inItems = details.getInputs(); @@ -84,8 +82,8 @@ public class PartFluidPatternTerminalEx extends FCFluidEncodeTerminal { final IAEItemStack item = inItems[i]; if (item != null) { if (item.getItem() instanceof ItemFluidDrop) { - ItemStack packet = - ItemFluidPacket.newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); + ItemStack packet = ItemFluidPacket + .newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); this.crafting.setInventorySlotContents(i, packet); } else this.crafting.setInventorySlotContents(i, item.getItemStack()); } @@ -96,8 +94,8 @@ public class PartFluidPatternTerminalEx extends FCFluidEncodeTerminal { final IAEItemStack item = outItems[i]; if (item != null) { if (item.getItem() instanceof ItemFluidDrop) { - ItemStack packet = - ItemFluidPacket.newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); + ItemStack packet = ItemFluidPacket + .newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); this.output.setInventorySlotContents(i, packet); } else this.output.setInventorySlotContents(i, item.getItemStack()); } @@ -107,8 +105,8 @@ public class PartFluidPatternTerminalEx extends FCFluidEncodeTerminal { final IAEItemStack item = outItems[i]; if (item != null) { if (item.getItem() instanceof ItemFluidDrop) { - ItemStack packet = - ItemFluidPacket.newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); + ItemStack packet = ItemFluidPacket + .newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); this.output.setInventorySlotContents(i >= 4 ? 12 + i : i, packet); } else this.output.setInventorySlotContents(i >= 4 ? 12 + i : i, item.getItemStack()); } diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidStorageBus.java b/src/main/java/com/glodblock/github/common/parts/PartFluidStorageBus.java index 3ef27833..5b39f025 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidStorageBus.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidStorageBus.java @@ -1,5 +1,18 @@ package com.glodblock.github.common.parts; +import java.util.Collections; +import java.util.List; +import java.util.Objects; + +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.AEApi; import appeng.api.config.*; import appeng.api.networking.IGridNode; @@ -36,6 +49,7 @@ import appeng.tile.networking.TileCableBus; import appeng.util.Platform; import appeng.util.item.AEFluidStack; import appeng.util.prioitylist.PrecisePriorityList; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.common.tile.TileFluidInterface; @@ -43,20 +57,10 @@ import com.glodblock.github.inventory.*; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.ModAndClassUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import extracells.tileentity.TileEntityFluidInterface; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Vec3; -import net.minecraftforge.fluids.IFluidHandler; public class PartFluidStorageBus extends PartUpgradeable implements IGridTickable, ICellContainer, IMEMonitorHandlerReceiver, IPriorityHost { @@ -150,12 +154,8 @@ public class PartFluidStorageBus extends PartUpgradeable } @Override - public void onChangeInventory( - final IInventory inv, - final int slot, - final InvOperation mc, - final ItemStack removedStack, - final ItemStack newStack) { + public void onChangeInventory(final IInventory inv, final int slot, final InvOperation mc, + final ItemStack removedStack, final ItemStack newStack) { super.onChangeInventory(inv, slot, mc, removedStack, newStack); if (inv == this.config) { @@ -164,8 +164,7 @@ public class PartFluidStorageBus extends PartUpgradeable } protected void resetCache(final boolean fullReset) { - if (this.getHost() == null - || this.getHost().getTile() == null + if (this.getHost() == null || this.getHost().getTile() == null || this.getHost().getTile().getWorldObj() == null || this.getHost().getTile().getWorldObj().isRemote) { return; @@ -179,8 +178,7 @@ public class PartFluidStorageBus extends PartUpgradeable try { this.getProxy().getTick().alertDevice(this.getProxy().getNode()); - } catch (final GridAccessException ignore) { - } + } catch (final GridAccessException ignore) {} } protected void resetCache() { @@ -191,8 +189,8 @@ public class PartFluidStorageBus extends PartUpgradeable IItemList before = AEApi.instance().storage().createFluidList(); if (in != null) { if (accessChanged) { - AccessRestriction currentAccess = - (AccessRestriction) this.getConfigManager().getSetting(Settings.ACCESS); + AccessRestriction currentAccess = (AccessRestriction) this.getConfigManager() + .getSetting(Settings.ACCESS); if (!currentAccess.hasPermission(AccessRestriction.READ)) { readOncePass = true; } @@ -226,21 +224,16 @@ public class PartFluidStorageBus extends PartUpgradeable } @Override - public void postChange( - final IBaseMonitor monitor, - final Iterable change, + public void postChange(final IBaseMonitor monitor, final Iterable change, final BaseActionSource source) { if (this.getProxy().isActive()) { - AccessRestriction currentAccess = - (AccessRestriction) this.getConfigManager().getSetting(Settings.ACCESS); + AccessRestriction currentAccess = (AccessRestriction) this.getConfigManager().getSetting(Settings.ACCESS); if (readOncePass) { readOncePass = false; try { - this.getProxy() - .getStorage() + this.getProxy().getStorage() .postAlterationOfStoredItems(StorageChannel.FLUIDS, change, this.source); - } catch (final GridAccessException ignore) { - } + } catch (final GridAccessException ignore) {} return; } if (!currentAccess.hasPermission(AccessRestriction.READ)) { @@ -248,8 +241,7 @@ public class PartFluidStorageBus extends PartUpgradeable } try { this.getProxy().getStorage().postAlterationOfStoredItems(StorageChannel.FLUIDS, change, source); - } catch (final GridAccessException ignore) { - } + } catch (final GridAccessException ignore) {} } } @@ -330,7 +322,7 @@ public class PartFluidStorageBus extends PartUpgradeable return TickRateModulation.SLEEP; } - @SuppressWarnings({"rawtypes", "unchecked"}) + @SuppressWarnings({ "rawtypes", "unchecked" }) public MEInventoryHandler getInternalHandler() { if (this.cached) { return this.handler; @@ -349,13 +341,11 @@ public class PartFluidStorageBus extends PartUpgradeable this.handler = null; this.monitor = null; if (target != null) { - final IExternalStorageHandler esh = AEApi.instance() - .registries() - .externalStorage() + final IExternalStorageHandler esh = AEApi.instance().registries().externalStorage() .getHandler(target, this.getSide().getOpposite(), StorageChannel.FLUIDS, this.source); if (esh != null) { - final IMEInventory inv = - esh.getInventory(target, this.getSide().getOpposite(), StorageChannel.FLUIDS, this.source); + final IMEInventory inv = esh + .getInventory(target, this.getSide().getOpposite(), StorageChannel.FLUIDS, this.source); if (inv instanceof MEMonitorIFluidHandler) { final MEMonitorIFluidHandler h = (MEMonitorIFluidHandler) inv; h.setMode((StorageFilter) this.getConfigManager().getSetting(Settings.STORAGE_FILTER)); @@ -364,18 +354,15 @@ public class PartFluidStorageBus extends PartUpgradeable } if (inv != null) { this.handler = new MEInventoryHandler(inv, StorageChannel.FLUIDS); - this.handler.setBaseAccess( - (AccessRestriction) this.getConfigManager().getSetting(Settings.ACCESS)); + this.handler.setBaseAccess((AccessRestriction) this.getConfigManager().getSetting(Settings.ACCESS)); this.handler.setWhitelist( - this.getInstalledUpgrades(Upgrades.INVERTER) > 0 - ? IncludeExclude.BLACKLIST + this.getInstalledUpgrades(Upgrades.INVERTER) > 0 ? IncludeExclude.BLACKLIST : IncludeExclude.WHITELIST); this.handler.setPriority(this.priority); if (inv instanceof IMEMonitor) { ((IBaseMonitor) inv).addListener(this, this.handler); } - final IItemList priorityList = - AEApi.instance().storage().createFluidList(); + final IItemList priorityList = AEApi.instance().storage().createFluidList(); final int slotsToUse = 18 + this.getInstalledUpgrades(Upgrades.CAPACITY) * 9; for (int x = 0; x < this.config.getSizeInventory() && x < slotsToUse; x++) { @@ -396,15 +383,13 @@ public class PartFluidStorageBus extends PartUpgradeable } else { tm.wakeDevice(this.getProxy().getNode()); } - } catch (final GridAccessException ignore) { - } + } catch (final GridAccessException ignore) {} } try { // force grid to update handlers... ((GridStorageCache) this.getProxy().getGrid().getCache(IStorageGrid.class)).cellUpdate(null); - } catch (final GridAccessException ignore) { - } + } catch (final GridAccessException ignore) {} return this.handler; } @@ -475,8 +460,8 @@ public class PartFluidStorageBus extends PartUpgradeable @Override @SideOnly(Side.CLIENT) - public void renderStatic( - final int x, final int y, final int z, final IPartRenderHelper rh, final RenderBlocks renderer) { + public void renderStatic(final int x, final int y, final int z, final IPartRenderHelper rh, + final RenderBlocks renderer) { this.setRenderCache(rh.useSimplifiedRendering(x, y, z, this, this.getRenderCache())); rh.setTexture( CableBusTextures.PartStorageSides.getIcon(), diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidStorageMonitor.java b/src/main/java/com/glodblock/github/common/parts/PartFluidStorageMonitor.java index 8ffb6f58..5b6d8900 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidStorageMonitor.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidStorageMonitor.java @@ -1,17 +1,18 @@ package com.glodblock.github.common.parts; +import net.minecraft.item.ItemStack; + import appeng.client.texture.CableBusTextures; import appeng.helpers.Reflected; + import com.glodblock.github.common.parts.base.FCPartMonitor; -import net.minecraft.item.ItemStack; public class PartFluidStorageMonitor extends FCPartMonitor { private static final CableBusTextures FRONT_BRIGHT_ICON = CableBusTextures.PartStorageMonitor_Bright; private static final CableBusTextures FRONT_DARK_ICON = CableBusTextures.PartStorageMonitor_Dark; private static final CableBusTextures FRONT_COLORED_ICON = CableBusTextures.PartStorageMonitor_Colored; - private static final CableBusTextures FRONT_COLORED_ICON_LOCKED = - CableBusTextures.PartStorageMonitor_Colored_Locked; + private static final CableBusTextures FRONT_COLORED_ICON_LOCKED = CableBusTextures.PartStorageMonitor_Colored_Locked; @Reflected public PartFluidStorageMonitor(final ItemStack is) { diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidTerminal.java b/src/main/java/com/glodblock/github/common/parts/PartFluidTerminal.java index 77d305f3..9b42bea4 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidTerminal.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidTerminal.java @@ -1,11 +1,13 @@ package com.glodblock.github.common.parts; +import net.minecraft.item.ItemStack; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.parts.base.FCPart; import com.glodblock.github.inventory.gui.GuiType; -import net.minecraft.item.ItemStack; public class PartFluidTerminal extends FCPart { + private static final FCPartsTexture FRONT_BRIGHT_ICON = FCPartsTexture.PartFluidTerminal_Bright; private static final FCPartsTexture FRONT_DARK_ICON = FCPartsTexture.PartFluidTerminal_Colored; private static final FCPartsTexture FRONT_COLORED_ICON = FCPartsTexture.PartFluidTerminal_Dark; diff --git a/src/main/java/com/glodblock/github/common/parts/base/FCFluidEncodeTerminal.java b/src/main/java/com/glodblock/github/common/parts/base/FCFluidEncodeTerminal.java index 7febe665..4b91a4be 100644 --- a/src/main/java/com/glodblock/github/common/parts/base/FCFluidEncodeTerminal.java +++ b/src/main/java/com/glodblock/github/common/parts/base/FCFluidEncodeTerminal.java @@ -1,12 +1,14 @@ package com.glodblock.github.common.parts.base; -import appeng.api.storage.data.IAEItemStack; -import appeng.tile.inventory.AppEngInternalInventory; import java.util.List; + import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import appeng.api.storage.data.IAEItemStack; +import appeng.tile.inventory.AppEngInternalInventory; + public abstract class FCFluidEncodeTerminal extends FCPart { protected AppEngInternalInventory crafting; diff --git a/src/main/java/com/glodblock/github/common/parts/base/FCPart.java b/src/main/java/com/glodblock/github/common/parts/base/FCPart.java index de0f7519..7584b0d1 100644 --- a/src/main/java/com/glodblock/github/common/parts/base/FCPart.java +++ b/src/main/java/com/glodblock/github/common/parts/base/FCPart.java @@ -1,5 +1,22 @@ package com.glodblock.github.common.parts.base; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.api.config.*; import appeng.api.implementations.IPowerChannelState; import appeng.api.implementations.tiles.IViewCellStorage; @@ -24,29 +41,16 @@ import appeng.tile.inventory.InvOperation; import appeng.util.ConfigManager; import appeng.util.IConfigManagerHost; import appeng.util.Platform; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.Util; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; -import java.io.IOException; -import java.util.List; -import java.util.Objects; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; public abstract class FCPart extends AEBasePart implements IPowerChannelState, ITerminalHost, IConfigManagerHost, IViewCellStorage, IAEAppEngInventory { @@ -247,12 +251,10 @@ public abstract class FCPart extends AEBasePart private int blockLight(final int emit) { if (this.opacity < 0) { final TileEntity te = this.getTile(); - this.opacity = 255 - - te.getWorldObj() - .getBlockLightOpacity( - te.xCoord + this.getSide().offsetX, - te.yCoord + this.getSide().offsetY, - te.zCoord + this.getSide().offsetZ); + this.opacity = 255 - te.getWorldObj().getBlockLightOpacity( + te.xCoord + this.getSide().offsetX, + te.yCoord + this.getSide().offsetY, + te.zCoord + this.getSide().offsetZ); } return (int) (emit * (this.opacity / 255.0f)); } @@ -299,12 +301,8 @@ public abstract class FCPart extends AEBasePart } @Override - public void onChangeInventory( - final IInventory inv, - final int slot, - final InvOperation mc, - final ItemStack removedStack, - final ItemStack newStack) { + public void onChangeInventory(final IInventory inv, final int slot, final InvOperation mc, + final ItemStack removedStack, final ItemStack newStack) { this.getHost().markForSave(); } @@ -358,8 +356,8 @@ public abstract class FCPart extends AEBasePart @Override @SideOnly(Side.CLIENT) - public void renderStatic( - final int x, final int y, final int z, final IPartRenderHelper rh, final RenderBlocks renderer) { + public void renderStatic(final int x, final int y, final int z, final IPartRenderHelper rh, + final RenderBlocks renderer) { this.setRenderCache(rh.useSimplifiedRendering(x, y, z, this, this.getRenderCache())); final IIcon sideTexture = CableBusTextures.PartMonitorSides.getIcon(); @@ -381,8 +379,8 @@ public abstract class FCPart extends AEBasePart Tessellator.instance.setBrightness(l << 20 | l << 4); } - renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = - renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = this.getSpin(); + renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = this + .getSpin(); Tessellator.instance.setColorOpaque_I(this.getColor().whiteVariant); rh.renderFace(x, y, z, this.getFrontBright().getIcon(), ForgeDirection.SOUTH, renderer); @@ -393,8 +391,7 @@ public abstract class FCPart extends AEBasePart Tessellator.instance.setColorOpaque_I(this.getColor().blackVariant); rh.renderFace(x, y, z, this.getFrontColored().getIcon(), ForgeDirection.SOUTH, renderer); - renderer.uvRotateBottom = renderer.uvRotateEast = - renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; + renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; final IIcon sideStatusTexture = CableBusTextures.PartMonitorSidesStatus.getIcon(); diff --git a/src/main/java/com/glodblock/github/common/parts/base/FCPartMonitor.java b/src/main/java/com/glodblock/github/common/parts/base/FCPartMonitor.java index 0d8ab321..f7f2070f 100644 --- a/src/main/java/com/glodblock/github/common/parts/base/FCPartMonitor.java +++ b/src/main/java/com/glodblock/github/common/parts/base/FCPartMonitor.java @@ -1,5 +1,25 @@ package com.glodblock.github.common.parts.base; +import java.io.IOException; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.GLAllocation; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + import appeng.api.implementations.parts.IPartStorageMonitor; import appeng.api.networking.security.BaseActionSource; import appeng.api.networking.storage.IStackWatcher; @@ -22,31 +42,17 @@ import appeng.util.IWideReadableNumberConverter; import appeng.util.Platform; import appeng.util.ReadableNumberConverter; import appeng.util.item.AEFluidStack; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.util.Util; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; -import java.io.IOException; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.renderer.GLAllocation; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; public abstract class FCPartMonitor extends AbstractPartDisplay implements IPartStorageMonitor, IStackWatcherHost { + private static final IWideReadableNumberConverter NUMBER_CONVERTER = ReadableNumberConverter.INSTANCE; private IAEFluidStack configuredFluid; @@ -197,8 +203,8 @@ public abstract class FCPartMonitor extends AbstractPartDisplay implements IPart @Override @SideOnly(Side.CLIENT) - public void renderDynamic( - final double x, final double y, final double z, final IPartRenderHelper rh, final RenderBlocks renderer) { + public void renderDynamic(final double x, final double y, final double z, final IPartRenderHelper rh, + final RenderBlocks renderer) { if (this.dspList == null) { this.dspList = GLAllocation.generateDisplayLists(1); } @@ -325,12 +331,8 @@ public abstract class FCPartMonitor extends AbstractPartDisplay implements IPart } @Override - public void onStackChange( - final IItemList o, - final IAEStack fullStack, - final IAEStack diffStack, - final BaseActionSource src, - final StorageChannel chan) { + public void onStackChange(final IItemList o, final IAEStack fullStack, final IAEStack diffStack, + final BaseActionSource src, final StorageChannel chan) { if (this.configuredFluid != null) { if (fullStack == null) { this.configuredFluid.setStackSize(0); @@ -385,8 +387,8 @@ public abstract class FCPartMonitor extends AbstractPartDisplay implements IPart @Override @SideOnly(Side.CLIENT) - public void renderStatic( - final int x, final int y, final int z, final IPartRenderHelper rh, final RenderBlocks renderer) { + public void renderStatic(final int x, final int y, final int z, final IPartRenderHelper rh, + final RenderBlocks renderer) { this.setRenderCache(rh.useSimplifiedRendering(x, y, z, this, this.getRenderCache())); final IIcon sideTexture = CableBusTextures.PartMonitorSides.getIcon(); @@ -408,8 +410,8 @@ public abstract class FCPartMonitor extends AbstractPartDisplay implements IPart Tessellator.instance.setBrightness(l << 20 | l << 4); } - renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = - renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = this.getSpin(); + renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = this + .getSpin(); Tessellator.instance.setColorOpaque_I(this.getColor().whiteVariant); rh.renderFace(x, y, z, this.getFrontBright().getIcon(), ForgeDirection.SOUTH, renderer); @@ -420,8 +422,7 @@ public abstract class FCPartMonitor extends AbstractPartDisplay implements IPart Tessellator.instance.setColorOpaque_I(this.getColor().blackVariant); rh.renderFace(x, y, z, this.getFrontColored().getIcon(), ForgeDirection.SOUTH, renderer); - renderer.uvRotateBottom = renderer.uvRotateEast = - renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; + renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; final IIcon sideStatusTexture = CableBusTextures.PartMonitorSidesStatus.getIcon(); diff --git a/src/main/java/com/glodblock/github/common/parts/base/FCSharedFluidBus.java b/src/main/java/com/glodblock/github/common/parts/base/FCSharedFluidBus.java index 86c5e994..1dc811ce 100644 --- a/src/main/java/com/glodblock/github/common/parts/base/FCSharedFluidBus.java +++ b/src/main/java/com/glodblock/github/common/parts/base/FCSharedFluidBus.java @@ -1,5 +1,16 @@ package com.glodblock.github.common.parts.base; +import java.util.Objects; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + import appeng.api.config.RedstoneMode; import appeng.api.config.Upgrades; import appeng.api.networking.ticking.IGridTickable; @@ -11,19 +22,11 @@ import appeng.me.GridAccessException; import appeng.parts.automation.PartUpgradeable; import appeng.tile.inventory.AppEngInternalAEInventory; import appeng.util.Platform; + import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; -import java.util.Objects; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; public abstract class FCSharedFluidBus extends PartUpgradeable implements IGridTickable { diff --git a/src/main/java/com/glodblock/github/common/storage/CellType.java b/src/main/java/com/glodblock/github/common/storage/CellType.java index 5c29f233..6b997088 100644 --- a/src/main/java/com/glodblock/github/common/storage/CellType.java +++ b/src/main/java/com/glodblock/github/common/storage/CellType.java @@ -1,12 +1,15 @@ package com.glodblock.github.common.storage; -import appeng.core.features.AEFeature; import java.util.EnumSet; + import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; +import appeng.core.features.AEFeature; + public enum CellType { + Cell1kPart(0, AEFeature.StorageCells), Cell4kPart(1, AEFeature.StorageCells), Cell16kPart(2, AEFeature.StorageCells), diff --git a/src/main/java/com/glodblock/github/common/storage/FluidCellHandler.java b/src/main/java/com/glodblock/github/common/storage/FluidCellHandler.java index cdcbfe0a..648ead69 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellHandler.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellHandler.java @@ -1,16 +1,18 @@ package com.glodblock.github.common.storage; -import appeng.api.implementations.tiles.IChestOrDrive; -import appeng.api.storage.*; -import appeng.client.texture.ExtraBlockTextures; -import com.glodblock.github.inventory.InventoryHandler; -import com.glodblock.github.inventory.gui.GuiType; -import com.glodblock.github.util.BlockPos; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import appeng.api.implementations.tiles.IChestOrDrive; +import appeng.api.storage.*; +import appeng.client.texture.ExtraBlockTextures; + +import com.glodblock.github.inventory.InventoryHandler; +import com.glodblock.github.inventory.gui.GuiType; +import com.glodblock.github.util.BlockPos; + public class FluidCellHandler implements ICellHandler { @Override @@ -20,8 +22,8 @@ public class FluidCellHandler implements ICellHandler { @Override @SuppressWarnings("rawtypes") - public IMEInventoryHandler getCellInventory( - final ItemStack is, final ISaveProvider container, final StorageChannel channel) { + public IMEInventoryHandler getCellInventory(final ItemStack is, final ISaveProvider container, + final StorageChannel channel) { if (channel == StorageChannel.FLUIDS) { return FluidCellInventory.getCell(is, container); } @@ -44,18 +46,13 @@ public class FluidCellHandler implements ICellHandler { } @Override - public void openChestGui( - final EntityPlayer player, - final IChestOrDrive chest, - final ICellHandler cellHandler, - final IMEInventoryHandler inv, - final ItemStack is, - final StorageChannel chan) { + public void openChestGui(final EntityPlayer player, final IChestOrDrive chest, final ICellHandler cellHandler, + final IMEInventoryHandler inv, final ItemStack is, final StorageChannel chan) { if (chan == StorageChannel.FLUIDS) { if (chest instanceof TileEntity) { TileEntity te = (TileEntity) chest; - InventoryHandler.openGui( - player, te.getWorldObj(), new BlockPos(te), chest.getUp(), GuiType.FLUID_TERMINAL); + InventoryHandler + .openGui(player, te.getWorldObj(), new BlockPos(te), chest.getUp(), GuiType.FLUID_TERMINAL); } } } diff --git a/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java b/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java index 7ef17aa3..13885381 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java @@ -1,5 +1,15 @@ package com.glodblock.github.common.storage; +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.exceptions.AppEngException; @@ -11,14 +21,6 @@ import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IItemList; import appeng.util.Platform; import appeng.util.item.AEFluidStack; -import java.util.ArrayList; -import java.util.List; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fluids.FluidStack; public class FluidCellInventory implements IFluidCellInventory { @@ -115,7 +117,7 @@ public class FluidCellInventory implements IFluidCellInventory { public boolean canHoldNewFluid() { final long bytesFree = this.getFreeBytes(); return (bytesFree > this.getBytesPerType() - || (bytesFree == this.getBytesPerType() && this.getUnusedFluidCount() > 0)) + || (bytesFree == this.getBytesPerType() && this.getUnusedFluidCount() > 0)) && this.getRemainingFluidTypes() > 0; } @@ -300,8 +302,8 @@ public class FluidCellInventory implements IFluidCellInventory { if (this.canHoldNewFluid()) // room for new type, and for at least one item! { - final long remainingFluidCount = - this.getRemainingFluidCount() - ((long) this.getBytesPerType() * singleByteAmount); + final long remainingFluidCount = this.getRemainingFluidCount() + - ((long) this.getBytesPerType() * singleByteAmount); if (remainingFluidCount > 0) { if (input.getStackSize() > remainingFluidCount) { diff --git a/src/main/java/com/glodblock/github/common/storage/FluidCellInventoryHandler.java b/src/main/java/com/glodblock/github/common/storage/FluidCellInventoryHandler.java index 2ad00711..334a0cea 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellInventoryHandler.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellInventoryHandler.java @@ -1,5 +1,8 @@ package com.glodblock.github.common.storage; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; + import appeng.api.AEApi; import appeng.api.config.IncludeExclude; import appeng.api.storage.IMEInventory; @@ -10,10 +13,9 @@ import appeng.me.storage.MEInventoryHandler; import appeng.me.storage.MEPassThrough; import appeng.util.item.AEFluidStack; import appeng.util.prioitylist.PrecisePriorityList; + import com.glodblock.github.util.Ae2Reflect; import com.glodblock.github.util.Util; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; public class FluidCellInventoryHandler extends MEInventoryHandler implements IFluidCellInventoryHandler { @@ -25,8 +27,7 @@ public class FluidCellInventoryHandler extends MEInventoryHandler if (ci != null) { final IInventory config = ci.getConfigInventory(); - final IItemList priorityList = - AEApi.instance().storage().createFluidList(); + final IItemList priorityList = AEApi.instance().storage().createFluidList(); for (int x = 0; x < config.getSizeInventory(); x++) { final ItemStack is = config.getStackInSlot(x); if (Util.getFluidFromItem(is) != null) { diff --git a/src/main/java/com/glodblock/github/common/storage/IFluidCellInventory.java b/src/main/java/com/glodblock/github/common/storage/IFluidCellInventory.java index 89e91489..e48739c3 100644 --- a/src/main/java/com/glodblock/github/common/storage/IFluidCellInventory.java +++ b/src/main/java/com/glodblock/github/common/storage/IFluidCellInventory.java @@ -1,10 +1,12 @@ package com.glodblock.github.common.storage; +import java.util.List; + +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; + import appeng.api.storage.IMEInventory; import appeng.api.storage.data.IAEFluidStack; -import java.util.List; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; public interface IFluidCellInventory extends IMEInventory { diff --git a/src/main/java/com/glodblock/github/common/storage/IStorageFluidCell.java b/src/main/java/com/glodblock/github/common/storage/IStorageFluidCell.java index 90d076b9..7ed2134b 100644 --- a/src/main/java/com/glodblock/github/common/storage/IStorageFluidCell.java +++ b/src/main/java/com/glodblock/github/common/storage/IStorageFluidCell.java @@ -1,8 +1,9 @@ package com.glodblock.github.common.storage; +import net.minecraft.item.ItemStack; + import appeng.api.storage.ICellWorkbenchItem; import appeng.api.storage.data.IAEFluidStack; -import net.minecraft.item.ItemStack; public interface IStorageFluidCell extends ICellWorkbenchItem { diff --git a/src/main/java/com/glodblock/github/common/tabs/FluidCraftingTabs.java b/src/main/java/com/glodblock/github/common/tabs/FluidCraftingTabs.java index 56e5e195..e54b3f0b 100644 --- a/src/main/java/com/glodblock/github/common/tabs/FluidCraftingTabs.java +++ b/src/main/java/com/glodblock/github/common/tabs/FluidCraftingTabs.java @@ -1,9 +1,10 @@ package com.glodblock.github.common.tabs; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; + import com.glodblock.github.FluidCraft; import com.glodblock.github.loader.ItemAndBlockHolder; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; public class FluidCraftingTabs extends CreativeTabs { diff --git a/src/main/java/com/glodblock/github/common/tile/TileFluidBuffer.java b/src/main/java/com/glodblock/github/common/tile/TileFluidBuffer.java index e10b77b4..a82caa72 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileFluidBuffer.java +++ b/src/main/java/com/glodblock/github/common/tile/TileFluidBuffer.java @@ -1,5 +1,12 @@ package com.glodblock.github.common.tile; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; import appeng.api.implementations.IPowerChannelState; @@ -15,16 +22,11 @@ import appeng.tile.TileEvent; import appeng.tile.events.TileEventType; import appeng.tile.grid.AENetworkTile; import appeng.util.item.AEFluidStack; + import com.glodblock.github.inventory.AEFluidInventory; import com.glodblock.github.inventory.IAEFluidInventory; import com.glodblock.github.inventory.IAEFluidTank; import io.netty.buffer.ByteBuf; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; -import net.minecraftforge.fluids.IFluidHandler; public class TileFluidBuffer extends AENetworkTile implements IAEFluidInventory, IFluidHandler, IPowerChannelState { @@ -44,10 +46,7 @@ public class TileFluidBuffer extends AENetworkTile implements IAEFluidInventory, return false; } try { - IAEFluidStack ias = this.getProxy() - .getStorage() - .getFluidInventory() - .getStorageList() + IAEFluidStack ias = this.getProxy().getStorage().getFluidInventory().getStorageList() .findPrecise(AEFluidStack.create(fs)); this.invFluids.setFluidInSlot(0, ias); if (ias != null) return true; @@ -62,13 +61,10 @@ public class TileFluidBuffer extends AENetworkTile implements IAEFluidInventory, IAEFluidStack ifs = this.getAEFluidStack(); if (ifs != null && ifs.getFluid() == fluidStack.getFluid()) { try { - IAEFluidStack notInserted = this.getProxy() - .getStorage() - .getFluidInventory() - .injectItems( - AEFluidStack.create(fluidStack), - b ? Actionable.MODULATE : Actionable.SIMULATE, - this.source); + IAEFluidStack notInserted = this.getProxy().getStorage().getFluidInventory().injectItems( + AEFluidStack.create(fluidStack), + b ? Actionable.MODULATE : Actionable.SIMULATE, + this.source); if (notInserted != null) return fluidStack.amount -= notInserted.getStackSize(); return fluidStack.amount; } catch (final GridAccessException e) { @@ -92,8 +88,8 @@ public class TileFluidBuffer extends AENetworkTile implements IAEFluidInventory, if (fs == null || fs.amount <= 0) return null; try { IAEFluidStack ias = AEFluidStack.create(fs); - IAEFluidStack extracted = - this.getProxy().getStorage().getFluidInventory().extractItems(ias, actionable, this.source); + IAEFluidStack extracted = this.getProxy().getStorage().getFluidInventory() + .extractItems(ias, actionable, this.source); if (extracted == null) return null; return extracted.getFluidStack(); } catch (final GridAccessException e) { @@ -115,10 +111,7 @@ public class TileFluidBuffer extends AENetworkTile implements IAEFluidInventory, public IAEFluidStack getAEStoreFluidStack() { try { - return this.getProxy() - .getStorage() - .getFluidInventory() - .getStorageList() + return this.getProxy().getStorage().getFluidInventory().getStorageList() .findPrecise(this.getAEFluidStack()); } catch (final GridAccessException e) { // :P @@ -205,8 +198,7 @@ public class TileFluidBuffer extends AENetworkTile implements IAEFluidInventory, newState = this.getProxy().isActive() && this.getProxy().getEnergy().extractAEPower(1, Actionable.SIMULATE, PowerMultiplier.CONFIG) > 0.0001; - } catch (final GridAccessException ignored) { - } + } catch (final GridAccessException ignored) {} if (newState != this.isPowered) { this.isPowered = newState; this.markForUpdate(); diff --git a/src/main/java/com/glodblock/github/common/tile/TileFluidDiscretizer.java b/src/main/java/com/glodblock/github/common/tile/TileFluidDiscretizer.java index ec0212fd..850f1ae7 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileFluidDiscretizer.java +++ b/src/main/java/com/glodblock/github/common/tile/TileFluidDiscretizer.java @@ -1,5 +1,9 @@ package com.glodblock.github.common.tile; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.networking.GridFlags; @@ -20,10 +24,8 @@ import appeng.me.GridAccessException; import appeng.me.cache.CraftingGridCache; import appeng.me.storage.MEInventoryHandler; import appeng.tile.grid.AENetworkTile; + import com.glodblock.github.common.item.ItemFluidDrop; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; public class TileFluidDiscretizer extends AENetworkTile implements IPriorityHost, ICellContainer { @@ -87,10 +89,7 @@ public class TileFluidDiscretizer extends AENetworkTile implements IPriorityHost private IMEMonitor getFluidGrid() { try { - return getProxy() - .getGrid() - .getCache(IStorageGrid.class) - .getFluidInventory(); + return getProxy().getGrid().getCache(IStorageGrid.class).getFluidInventory(); } catch (GridAccessException e) { return null; } @@ -211,12 +210,12 @@ public class TileFluidDiscretizer extends AENetworkTile implements IPriorityHost @Override public boolean isValid(Object verificationToken) { IMEMonitor fluidGrid = getFluidGrid(); - return fluidGrid != null && fluidGrid == verificationToken /*&& !conflict*/; + return fluidGrid != null && fluidGrid == verificationToken /* && !conflict */; } @Override - public void postChange( - IBaseMonitor monitor, Iterable change, BaseActionSource actionSource) { + public void postChange(IBaseMonitor monitor, Iterable change, + BaseActionSource actionSource) { itemCache = null; try { List mappedChanges = new ArrayList<>(); @@ -226,9 +225,7 @@ public class TileFluidDiscretizer extends AENetworkTile implements IPriorityHost mappedChanges.add(itemStack); } } - getProxy() - .getGrid() - .getCache(IStorageGrid.class) + getProxy().getGrid().getCache(IStorageGrid.class) .postAlterationOfStoredItems(getChannel(), mappedChanges, ownActionSource); } catch (GridAccessException e) { // NO-OP diff --git a/src/main/java/com/glodblock/github/common/tile/TileFluidInterface.java b/src/main/java/com/glodblock/github/common/tile/TileFluidInterface.java index 4edb1866..e6e745f6 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileFluidInterface.java +++ b/src/main/java/com/glodblock/github/common/tile/TileFluidInterface.java @@ -1,5 +1,16 @@ package com.glodblock.github.common.tile; +import java.io.IOException; + +import javax.annotation.Nullable; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; + import appeng.api.config.Settings; import appeng.api.config.SidelessMode; import appeng.api.config.Upgrades; @@ -15,6 +26,7 @@ import appeng.tile.TileEvent; import appeng.tile.events.TileEventType; import appeng.tile.inventory.AppEngInternalAEInventory; import appeng.tile.misc.TileInterface; + import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.AEFluidInventory; import com.glodblock.github.inventory.IAEFluidTank; @@ -22,22 +34,16 @@ import com.glodblock.github.inventory.IDualHost; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.util.DualityFluidInterface; import com.glodblock.github.util.Util; + import cpw.mods.fml.common.network.ByteBufUtils; import io.netty.buffer.ByteBuf; -import java.io.IOException; -import javax.annotation.Nullable; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; public class TileFluidInterface extends TileInterface implements IDualHost { private final IConfigManager dualityConfigManager = getInterfaceDuality().getConfigManager(); private final DualityFluidInterface fluidDuality = new DualityFluidInterface(this.getProxy(), this) { + @Override public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { SidelessMode mode = (SidelessMode) dualityConfigManager.getSetting(Settings.SIDELESS_MODE); @@ -201,7 +207,8 @@ public class TileFluidInterface extends TileInterface implements IDualHost { public void setConfig(int id, IAEFluidStack fluid) { if (id >= 0 && id < 6) { config.setInventorySlotContents( - id, ItemFluidPacket.newDisplayStack(fluid == null ? null : fluid.getFluidStack())); + id, + ItemFluidPacket.newDisplayStack(fluid == null ? null : fluid.getFluidStack())); fluidDuality.getConfig().setFluidInSlot(id, fluidDuality.getStandardFluid(fluid)); } } diff --git a/src/main/java/com/glodblock/github/common/tile/TileFluidPacketDecoder.java b/src/main/java/com/glodblock/github/common/tile/TileFluidPacketDecoder.java index c0477b48..0500fd32 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileFluidPacketDecoder.java +++ b/src/main/java/com/glodblock/github/common/tile/TileFluidPacketDecoder.java @@ -1,5 +1,11 @@ package com.glodblock.github.common.tile; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.networking.GridFlags; import appeng.api.networking.IGridNode; import appeng.api.networking.energy.IEnergyGrid; @@ -21,12 +27,8 @@ import appeng.tile.inventory.IAEAppEngInventory; import appeng.tile.inventory.InvOperation; import appeng.util.Platform; import appeng.util.item.AEFluidStack; + import com.glodblock.github.common.item.ItemFluidPacket; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fluids.FluidStack; public class TileFluidPacketDecoder extends AENetworkTile implements IGridTickable, IAEAppEngInventory, IInventory { @@ -66,8 +68,8 @@ public class TileFluidPacketDecoder extends AENetworkTile implements IGridTickab } IAEFluidStack aeFluid = AEFluidStack.create(fluid.copy()); IEnergyGrid energyGrid = node.getGrid().getCache(IEnergyGrid.class); - IMEMonitor fluidGrid = - node.getGrid().getCache(IStorageGrid.class).getFluidInventory(); + IMEMonitor fluidGrid = node.getGrid().getCache(IStorageGrid.class) + .getFluidInventory(); IAEFluidStack remaining = Platform.poweredInsert(energyGrid, fluidGrid, aeFluid, ownActionSource); if (remaining != null) { if (remaining.getStackSize() == aeFluid.getStackSize()) { @@ -83,8 +85,8 @@ public class TileFluidPacketDecoder extends AENetworkTile implements IGridTickab } @Override - public void onChangeInventory( - IInventory inv, int slot, InvOperation mc, ItemStack removedStack, ItemStack newStack) { + public void onChangeInventory(IInventory inv, int slot, InvOperation mc, ItemStack removedStack, + ItemStack newStack) { try { getProxy().getTick().alertDevice(getProxy().getNode()); } catch (GridAccessException e) { diff --git a/src/main/java/com/glodblock/github/common/tile/TileFluidPatternEncoder.java b/src/main/java/com/glodblock/github/common/tile/TileFluidPatternEncoder.java index cbaae436..3b708be1 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileFluidPatternEncoder.java +++ b/src/main/java/com/glodblock/github/common/tile/TileFluidPatternEncoder.java @@ -1,5 +1,12 @@ package com.glodblock.github.common.tile; +import java.util.List; + +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.tile.AEBaseTile; @@ -8,19 +15,17 @@ import appeng.tile.events.TileEventType; import appeng.tile.inventory.AppEngInternalInventory; import appeng.tile.inventory.IAEAppEngInventory; import appeng.tile.inventory.InvOperation; + import com.glodblock.github.inventory.AeStackInventory; import com.glodblock.github.inventory.AeStackInventoryImpl; -import java.util.List; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; public class TileFluidPatternEncoder extends AEBaseTile implements IAEAppEngInventory { private final AppEngInternalInventory patternInv = new AppEngInternalInventory(this, 2); - private final AeStackInventoryImpl crafting = - new AeStackInventoryImpl<>(StorageChannel.ITEMS, 9, this); + private final AeStackInventoryImpl crafting = new AeStackInventoryImpl<>( + StorageChannel.ITEMS, + 9, + this); private final AeStackInventoryImpl output = new AeStackInventoryImpl<>(StorageChannel.ITEMS, 3, this); public IInventory getInventory() { @@ -65,6 +70,6 @@ public class TileFluidPatternEncoder extends AEBaseTile implements IAEAppEngInve } @Override - public void onChangeInventory( - IInventory inv, int slot, InvOperation mc, ItemStack removedStack, ItemStack newStack) {} + public void onChangeInventory(IInventory inv, int slot, InvOperation mc, ItemStack removedStack, + ItemStack newStack) {} } diff --git a/src/main/java/com/glodblock/github/common/tile/TileIngredientBuffer.java b/src/main/java/com/glodblock/github/common/tile/TileIngredientBuffer.java index cc472fdb..47177cb1 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileIngredientBuffer.java +++ b/src/main/java/com/glodblock/github/common/tile/TileIngredientBuffer.java @@ -1,17 +1,9 @@ package com.glodblock.github.common.tile; -import appeng.tile.AEBaseInvTile; -import appeng.tile.TileEvent; -import appeng.tile.events.TileEventType; -import appeng.tile.inventory.AppEngInternalInventory; -import appeng.tile.inventory.InvOperation; -import com.glodblock.github.inventory.AEFluidInventory; -import com.glodblock.github.inventory.IAEFluidInventory; -import com.glodblock.github.inventory.IAEFluidTank; -import cpw.mods.fml.common.network.ByteBufUtils; -import io.netty.buffer.ByteBuf; import java.io.IOException; + import javax.annotation.Nonnull; + import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -21,6 +13,19 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; +import appeng.tile.AEBaseInvTile; +import appeng.tile.TileEvent; +import appeng.tile.events.TileEventType; +import appeng.tile.inventory.AppEngInternalInventory; +import appeng.tile.inventory.InvOperation; + +import com.glodblock.github.inventory.AEFluidInventory; +import com.glodblock.github.inventory.IAEFluidInventory; +import com.glodblock.github.inventory.IAEFluidTank; + +import cpw.mods.fml.common.network.ByteBufUtils; +import io.netty.buffer.ByteBuf; + public class TileIngredientBuffer extends AEBaseInvTile implements IAEFluidInventory, IFluidHandler { protected AppEngInternalInventory invItems; @@ -49,7 +54,7 @@ public class TileIngredientBuffer extends AEBaseInvTile implements IAEFluidInven @Override public int[] getAccessibleSlotsBySide(ForgeDirection whichSide) { - return new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8}; + return new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; } @Override diff --git a/src/main/java/com/glodblock/github/common/tile/TileLargeIngredientBuffer.java b/src/main/java/com/glodblock/github/common/tile/TileLargeIngredientBuffer.java index 07ff536d..0c0a42dd 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileLargeIngredientBuffer.java +++ b/src/main/java/com/glodblock/github/common/tile/TileLargeIngredientBuffer.java @@ -1,9 +1,11 @@ package com.glodblock.github.common.tile; -import appeng.tile.inventory.AppEngInternalInventory; -import com.glodblock.github.inventory.AEFluidInventory; import net.minecraftforge.common.util.ForgeDirection; +import appeng.tile.inventory.AppEngInternalInventory; + +import com.glodblock.github.inventory.AEFluidInventory; + public class TileLargeIngredientBuffer extends TileIngredientBuffer { public TileLargeIngredientBuffer() { @@ -13,9 +15,8 @@ public class TileLargeIngredientBuffer extends TileIngredientBuffer { @Override public int[] getAccessibleSlotsBySide(ForgeDirection whichSide) { - return new int[] { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 - }; + return new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26 }; } @Override diff --git a/src/main/java/com/glodblock/github/common/tile/TileLevelMaintainer.java b/src/main/java/com/glodblock/github/common/tile/TileLevelMaintainer.java index 443ab6d5..ffc0885d 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileLevelMaintainer.java +++ b/src/main/java/com/glodblock/github/common/tile/TileLevelMaintainer.java @@ -1,5 +1,11 @@ package com.glodblock.github.common.tile; +import java.util.concurrent.Future; + +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; @@ -34,16 +40,13 @@ import appeng.tile.grid.AENetworkTile; import appeng.tile.inventory.IAEAppEngInventory; import appeng.tile.inventory.InvOperation; import appeng.util.item.AEItemStack; + import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.inventory.AeItemStackHandler; import com.glodblock.github.inventory.AeStackInventory; import com.glodblock.github.inventory.AeStackInventoryImpl; import com.google.common.collect.ImmutableSet; import io.netty.buffer.ByteBuf; -import java.util.concurrent.Future; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; public class TileLevelMaintainer extends AENetworkTile implements IAEAppEngInventory, IGridTickable, ICraftingRequester, IPowerChannelState { @@ -83,13 +86,11 @@ public class TileLevelMaintainer extends AENetworkTile try { if (this.getProxy().isActive()) { final IEnergyGrid energy = this.getProxy().getEnergy(); - final double power = Math.ceil( - ItemFluidDrop.isFluidStack(items) ? items.getStackSize() / 1000D : items.getStackSize()); + final double power = Math + .ceil(ItemFluidDrop.isFluidStack(items) ? items.getStackSize() / 1000D : items.getStackSize()); if (energy.extractAEPower(power, mode, PowerMultiplier.CONFIG) > power - 0.01) { if (ItemFluidDrop.isFluidStack(items)) { - IAEFluidStack notInserted = this.getProxy() - .getStorage() - .getFluidInventory() + IAEFluidStack notInserted = this.getProxy().getStorage().getFluidInventory() .injectItems(ItemFluidDrop.getAeFluidStack(items), mode, this.source); if (notInserted != null) { items.setStackSize(notInserted.getStackSize()); @@ -140,19 +141,18 @@ public class TileLevelMaintainer extends AENetworkTile try { ICraftingGrid cg = this.getProxy().getCrafting(); IGrid grid = this.getProxy().getGrid(); - final IItemList inv = - this.getProxy().getStorage().getItemInventory().getStorageList(); + final IItemList inv = this.getProxy().getStorage().getItemInventory().getStorageList(); for (int i = 0; i < REQ_COUNT; i++) { IAEItemStack is = requests.getRequestQtyStack(i); if (is != null && requests.getBatchSize(i) > 0) { IAEItemStack craftItem = requests.getCraftItem(i); if (this.requests.isDone(i)) this.requests.setState(i, State.Idling); - if (cg.canEmitFor(craftItem) - || cg.isRequesting(craftItem) + if (cg.canEmitFor(craftItem) || cg.isRequesting(craftItem) || inv.findPrecise(is) == null || !inv.findPrecise(is).isCraftable() || inv.findPrecise(is).getStackSize() >= is.getStackSize() - || !this.requests.isDone(i)) continue; + || !this.requests.isDone(i)) + continue; // do crafting Future jobTask = requests.getJobs()[i]; if (jobTask == null) { @@ -176,8 +176,7 @@ public class TileLevelMaintainer extends AENetworkTile } } } - } catch (final GridAccessException ignore) { - } + } catch (final GridAccessException ignore) {} return didSomething ? TickRateModulation.FASTER : TickRateModulation.SLOWER; } @@ -187,8 +186,8 @@ public class TileLevelMaintainer extends AENetworkTile } @Override - public void onChangeInventory( - IInventory inv, int slot, InvOperation mc, ItemStack removedStack, ItemStack newStack) { + public void onChangeInventory(IInventory inv, int slot, InvOperation mc, ItemStack removedStack, + ItemStack newStack) { try { getProxy().getTick().alertDevice(getProxy().getNode()); } catch (GridAccessException e) { @@ -244,8 +243,7 @@ public class TileLevelMaintainer extends AENetworkTile if (!this.requests.isDone(i)) this.requests.setState(i, State.Crafting); } } - } catch (Exception ignore) { - } + } catch (Exception ignore) {} } private NBTTagCompound writeLinkToNBT(NBTTagCompound data) { @@ -322,6 +320,7 @@ public class TileLevelMaintainer extends AENetworkTile } public static class InventoryRequest { + private final AeStackInventoryImpl requestStacks; private final AeStackInventoryImpl requestBatches; private final AeStackInventoryImpl requestQtys; diff --git a/src/main/java/com/glodblock/github/common/tile/TileOCPatternEditor.java b/src/main/java/com/glodblock/github/common/tile/TileOCPatternEditor.java index 79472e18..ea2c7063 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileOCPatternEditor.java +++ b/src/main/java/com/glodblock/github/common/tile/TileOCPatternEditor.java @@ -1,12 +1,13 @@ package com.glodblock.github.common.tile; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.items.misc.ItemEncodedPattern; import appeng.tile.AEBaseInvTile; import appeng.tile.inventory.AppEngInternalInventory; import appeng.tile.inventory.InvOperation; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; public class TileOCPatternEditor extends AEBaseInvTile { @@ -24,7 +25,7 @@ public class TileOCPatternEditor extends AEBaseInvTile { @Override public int[] getAccessibleSlotsBySide(ForgeDirection whichSide) { - return new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; + return new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; } @Override diff --git a/src/main/java/com/glodblock/github/coremod/FCClassTransformer.java b/src/main/java/com/glodblock/github/coremod/FCClassTransformer.java index a9edaf5d..93dcd167 100644 --- a/src/main/java/com/glodblock/github/coremod/FCClassTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/FCClassTransformer.java @@ -1,11 +1,13 @@ package com.glodblock.github.coremod; -import com.glodblock.github.coremod.transform.*; import net.minecraft.launchwrapper.IClassTransformer; + import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.ClassWriter; +import com.glodblock.github.coremod.transform.*; + public class FCClassTransformer implements IClassTransformer { @Override diff --git a/src/main/java/com/glodblock/github/coremod/FluidCraftCore.java b/src/main/java/com/glodblock/github/coremod/FluidCraftCore.java index b75a8940..28c0caa2 100644 --- a/src/main/java/com/glodblock/github/coremod/FluidCraftCore.java +++ b/src/main/java/com/glodblock/github/coremod/FluidCraftCore.java @@ -1,9 +1,11 @@ package com.glodblock.github.coremod; -import cpw.mods.fml.relauncher.IFMLLoadingPlugin; import java.util.Map; + import javax.annotation.Nullable; +import cpw.mods.fml.relauncher.IFMLLoadingPlugin; + @IFMLLoadingPlugin.Name("FluidCraftCore") @IFMLLoadingPlugin.MCVersion("1.7.10") @IFMLLoadingPlugin.TransformerExclusions("com.glodblock.github.coremod") @@ -11,7 +13,7 @@ public class FluidCraftCore implements IFMLLoadingPlugin { @Override public String[] getASMTransformerClass() { - return new String[] {FluidCraftCore.class.getPackage().getName() + ".FCClassTransformer"}; + return new String[] { FluidCraftCore.class.getPackage().getName() + ".FCClassTransformer" }; } @Nullable diff --git a/src/main/java/com/glodblock/github/coremod/hooker/CoreModHooks.java b/src/main/java/com/glodblock/github/coremod/hooker/CoreModHooks.java index 19a0b6d8..80075f50 100644 --- a/src/main/java/com/glodblock/github/coremod/hooker/CoreModHooks.java +++ b/src/main/java/com/glodblock/github/coremod/hooker/CoreModHooks.java @@ -1,5 +1,17 @@ package com.glodblock.github.coremod.hooker; +import java.util.HashSet; +import java.util.Set; + +import javax.annotation.Nullable; + +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.config.Actionable; import appeng.api.networking.IGrid; import appeng.api.networking.IGridHost; @@ -15,6 +27,7 @@ import appeng.me.cluster.implementations.CraftingCPUCluster; import appeng.parts.misc.PartInterface; import appeng.tile.misc.TileInterface; import appeng.util.InventoryAdaptor; + import com.glodblock.github.client.gui.GuiFluidCraftConfirm; import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidPacket; @@ -26,21 +39,14 @@ import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.util.Ae2Reflect; import com.glodblock.github.util.SetBackedMachineSet; import com.google.common.collect.Sets; -import java.util.HashSet; -import java.util.Set; -import javax.annotation.Nullable; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.inventory.InventoryCrafting; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; public class CoreModHooks { public static InventoryCrafting wrapCraftingBuffer(InventoryCrafting inv) { return new FluidConvertingInventoryCrafting( - inv.eventHandler, inv.inventoryWidth, inv.getSizeInventory() / inv.inventoryWidth); + inv.eventHandler, + inv.inventoryWidth, + inv.getSizeInventory() / inv.inventoryWidth); } public static IAEItemStack wrapFluidPacketStack(IAEItemStack stack) { @@ -69,8 +75,7 @@ public class CoreModHooks { } public static long getCraftingByteCost(IAEItemStack stack) { - return stack.getItem() instanceof ItemFluidDrop - ? (long) Math.ceil(stack.getStackSize() / 1000D) + return stack.getItem() instanceof ItemFluidDrop ? (long) Math.ceil(stack.getStackSize() / 1000D) : stack.getStackSize(); } diff --git a/src/main/java/com/glodblock/github/coremod/transform/ContainerInterfaceTerminalTransformer.java b/src/main/java/com/glodblock/github/coremod/transform/ContainerInterfaceTerminalTransformer.java index 99c02401..adaff102 100644 --- a/src/main/java/com/glodblock/github/coremod/transform/ContainerInterfaceTerminalTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/transform/ContainerInterfaceTerminalTransformer.java @@ -1,10 +1,11 @@ package com.glodblock.github.coremod.transform; -import com.glodblock.github.coremod.FCClassTransformer; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; +import com.glodblock.github.coremod.FCClassTransformer; + public class ContainerInterfaceTerminalTransformer extends FCClassTransformer.ClassMapper { public static final ContainerInterfaceTerminalTransformer INSTANCE = new ContainerInterfaceTerminalTransformer(); @@ -28,7 +29,8 @@ public class ContainerInterfaceTerminalTransformer extends FCClassTransformer.Cl public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { if (name.equals("detectAndSendChanges") || name.equals("func_75142_b") || name.equals("regenList")) { return new TransformDetectAndSendChanges( - api, super.visitMethod(access, name, desc, signature, exceptions)); + api, + super.visitMethod(access, name, desc, signature, exceptions)); } return super.visitMethod(access, name, desc, signature, exceptions); } @@ -42,8 +44,7 @@ public class ContainerInterfaceTerminalTransformer extends FCClassTransformer.Cl @Override public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { - if (opcode == Opcodes.INVOKEINTERFACE - && owner.equals("appeng/api/networking/IGrid") + if (opcode == Opcodes.INVOKEINTERFACE && owner.equals("appeng/api/networking/IGrid") && name.equals("getMachines")) { super.visitMethodInsn( Opcodes.INVOKESTATIC, diff --git a/src/main/java/com/glodblock/github/coremod/transform/CraftingCpuTransformer.java b/src/main/java/com/glodblock/github/coremod/transform/CraftingCpuTransformer.java index 7973bc48..348fada5 100644 --- a/src/main/java/com/glodblock/github/coremod/transform/CraftingCpuTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/transform/CraftingCpuTransformer.java @@ -1,11 +1,12 @@ package com.glodblock.github.coremod.transform; -import com.glodblock.github.coremod.FCClassTransformer; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.Label; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; +import com.glodblock.github.coremod.FCClassTransformer; + public class CraftingCpuTransformer extends FCClassTransformer.ClassMapper { public static final CraftingCpuTransformer INSTANCE = new CraftingCpuTransformer(); @@ -47,8 +48,7 @@ public class CraftingCpuTransformer extends FCClassTransformer.ClassMapper { @Override public void visitFieldInsn(int opcode, String owner, String name, String desc) { - if (opcode == Opcodes.GETFIELD - && owner.equals("appeng/me/cluster/implementations/CraftingCPUCluster") + if (opcode == Opcodes.GETFIELD && owner.equals("appeng/me/cluster/implementations/CraftingCPUCluster") && name.equals("inventory")) { gotInventory = true; } @@ -72,8 +72,7 @@ public class CraftingCpuTransformer extends FCClassTransformer.ClassMapper { @Override public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { if (reach_stack == 1) { - if (opcode == Opcodes.INVOKEINTERFACE - && owner.equals("appeng/api/storage/data/IAEItemStack") + if (opcode == Opcodes.INVOKEINTERFACE && owner.equals("appeng/api/storage/data/IAEItemStack") && name.equals("getStackSize")) { reach_stack = 2; super.visitMethodInsn( @@ -85,8 +84,7 @@ public class CraftingCpuTransformer extends FCClassTransformer.ClassMapper { return; } } - if (opcode == Opcodes.INVOKEVIRTUAL - && owner.equals("net/minecraft/inventory/InventoryCrafting") + if (opcode == Opcodes.INVOKEVIRTUAL && owner.equals("net/minecraft/inventory/InventoryCrafting") && (name.equals("getStackInSlot") || name.equals("func_70301_a"))) { super.visitMethodInsn( Opcodes.INVOKESTATIC, @@ -98,8 +96,7 @@ public class CraftingCpuTransformer extends FCClassTransformer.ClassMapper { } super.visitMethodInsn(opcode, owner, name, desc, itf); if (gotInventory) { - if (opcode == Opcodes.INVOKESTATIC - && owner.equals("appeng/util/item/AEItemStack") + if (opcode == Opcodes.INVOKESTATIC && owner.equals("appeng/util/item/AEItemStack") && name.equals("create")) { gotInventory = false; super.visitMethodInsn( @@ -109,16 +106,15 @@ public class CraftingCpuTransformer extends FCClassTransformer.ClassMapper { "(Lappeng/api/storage/data/IAEItemStack;)Lappeng/api/storage/data/IAEItemStack;", false); } - } else if (opcode == Opcodes.INVOKESPECIAL - && owner.equals("net/minecraft/inventory/InventoryCrafting") + } else if (opcode == Opcodes.INVOKESPECIAL && owner.equals("net/minecraft/inventory/InventoryCrafting") && name.equals("")) { - super.visitMethodInsn( - Opcodes.INVOKESTATIC, - "com/glodblock/github/coremod/hooker/CoreModHooks", - "wrapCraftingBuffer", - "(Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/inventory/InventoryCrafting;", - false); - } + super.visitMethodInsn( + Opcodes.INVOKESTATIC, + "com/glodblock/github/coremod/hooker/CoreModHooks", + "wrapCraftingBuffer", + "(Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/inventory/InventoryCrafting;", + false); + } } } @@ -130,8 +126,7 @@ public class CraftingCpuTransformer extends FCClassTransformer.ClassMapper { @Override public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { - if (opcode == Opcodes.INVOKESPECIAL - && owner.equals("appeng/me/cluster/implementations/CraftingCPUCluster") + if (opcode == Opcodes.INVOKESPECIAL && owner.equals("appeng/me/cluster/implementations/CraftingCPUCluster") && name.equals("storeItems")) { super.visitMethodInsn( Opcodes.INVOKESTATIC, diff --git a/src/main/java/com/glodblock/github/coremod/transform/CraftingTreeNodeTransformer.java b/src/main/java/com/glodblock/github/coremod/transform/CraftingTreeNodeTransformer.java index 5fe6ed38..99d52ebd 100644 --- a/src/main/java/com/glodblock/github/coremod/transform/CraftingTreeNodeTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/transform/CraftingTreeNodeTransformer.java @@ -1,11 +1,12 @@ package com.glodblock.github.coremod.transform; -import com.glodblock.github.coremod.FCClassTransformer; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.Label; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; +import com.glodblock.github.coremod.FCClassTransformer; + public class CraftingTreeNodeTransformer extends FCClassTransformer.ClassMapper { public static final CraftingTreeNodeTransformer INSTANCE = new CraftingTreeNodeTransformer(); @@ -45,8 +46,7 @@ public class CraftingTreeNodeTransformer extends FCClassTransformer.ClassMapper @Override public void visitFieldInsn(int opcode, String owner, String name, String desc) { - if (opcode == Opcodes.GETFIELD - && owner.equals("appeng/crafting/CraftingTreeNode") + if (opcode == Opcodes.GETFIELD && owner.equals("appeng/crafting/CraftingTreeNode") && name.equals("bytes")) { writingBytes = true; } @@ -61,8 +61,7 @@ public class CraftingTreeNodeTransformer extends FCClassTransformer.ClassMapper @Override public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { - if (writingBytes - && opcode == Opcodes.INVOKEINTERFACE + if (writingBytes && opcode == Opcodes.INVOKEINTERFACE && owner.equals("appeng/api/storage/data/IAEItemStack") && name.equals("getStackSize")) { writingBytes = false; diff --git a/src/main/java/com/glodblock/github/coremod/transform/DualityInterfaceTransformer.java b/src/main/java/com/glodblock/github/coremod/transform/DualityInterfaceTransformer.java index fc74c26d..2563f253 100644 --- a/src/main/java/com/glodblock/github/coremod/transform/DualityInterfaceTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/transform/DualityInterfaceTransformer.java @@ -1,10 +1,11 @@ package com.glodblock.github.coremod.transform; -import com.glodblock.github.coremod.FCClassTransformer; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; +import com.glodblock.github.coremod.FCClassTransformer; + public class DualityInterfaceTransformer extends FCClassTransformer.ClassMapper { public static final DualityInterfaceTransformer INSTANCE = new DualityInterfaceTransformer(); @@ -31,7 +32,8 @@ public class DualityInterfaceTransformer extends FCClassTransformer.ClassMapper case "pushPattern": case "isBusy": return new TransformInvAdaptorCalls( - api, super.visitMethod(access, name, desc, signature, exceptions)); + api, + super.visitMethod(access, name, desc, signature, exceptions)); default: return super.visitMethod(access, name, desc, signature, exceptions); } @@ -46,8 +48,7 @@ public class DualityInterfaceTransformer extends FCClassTransformer.ClassMapper @Override public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { - if (opcode == Opcodes.INVOKESTATIC - && owner.equals("appeng/util/InventoryAdaptor") + if (opcode == Opcodes.INVOKESTATIC && owner.equals("appeng/util/InventoryAdaptor") && name.equals("getAdaptor")) { super.visitMethodInsn( Opcodes.INVOKESTATIC, diff --git a/src/main/java/com/glodblock/github/coremod/transform/ExternalStorageRegistryTransformer.java b/src/main/java/com/glodblock/github/coremod/transform/ExternalStorageRegistryTransformer.java index f9357278..6c175b15 100644 --- a/src/main/java/com/glodblock/github/coremod/transform/ExternalStorageRegistryTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/transform/ExternalStorageRegistryTransformer.java @@ -1,8 +1,9 @@ package com.glodblock.github.coremod.transform; -import com.glodblock.github.coremod.FCClassTransformer; import org.objectweb.asm.*; +import com.glodblock.github.coremod.FCClassTransformer; + public class ExternalStorageRegistryTransformer extends FCClassTransformer.ClassMapper { public static final ExternalStorageRegistryTransformer INSTANCE = new ExternalStorageRegistryTransformer(); diff --git a/src/main/java/com/glodblock/github/coremod/transform/GuiCraftingTransformer.java b/src/main/java/com/glodblock/github/coremod/transform/GuiCraftingTransformer.java index 4cc3568d..1c625f16 100644 --- a/src/main/java/com/glodblock/github/coremod/transform/GuiCraftingTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/transform/GuiCraftingTransformer.java @@ -1,10 +1,11 @@ package com.glodblock.github.coremod.transform; -import com.glodblock.github.coremod.FCClassTransformer; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; +import com.glodblock.github.coremod.FCClassTransformer; + public class GuiCraftingTransformer extends FCClassTransformer.ClassMapper { public static final GuiCraftingTransformer INSTANCE = new GuiCraftingTransformer(); @@ -41,8 +42,7 @@ public class GuiCraftingTransformer extends FCClassTransformer.ClassMapper { @Override public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { - if (opcode == Opcodes.INVOKEINTERFACE - && owner.equals("appeng/api/storage/data/IAEItemStack") + if (opcode == Opcodes.INVOKEINTERFACE && owner.equals("appeng/api/storage/data/IAEItemStack") && name.equals("getItemStack")) { super.visitMethodInsn( Opcodes.INVOKESTATIC, diff --git a/src/main/java/com/glodblock/github/coremod/transform/NEITransfermer.java b/src/main/java/com/glodblock/github/coremod/transform/NEITransfermer.java index bf216e71..4a3a068d 100644 --- a/src/main/java/com/glodblock/github/coremod/transform/NEITransfermer.java +++ b/src/main/java/com/glodblock/github/coremod/transform/NEITransfermer.java @@ -1,10 +1,11 @@ package com.glodblock.github.coremod.transform; -import com.glodblock.github.coremod.FCClassTransformer; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; +import com.glodblock.github.coremod.FCClassTransformer; + public class NEITransfermer extends FCClassTransformer.ClassMapper { public static final NEITransfermer INSTANCE = new NEITransfermer(); @@ -29,7 +30,8 @@ public class NEITransfermer extends FCClassTransformer.ClassMapper { switch (name) { case "getStackUnderMouse": return new TransformStackUnderMouse( - api, super.visitMethod(access, name, desc, signature, exceptions)); + api, + super.visitMethod(access, name, desc, signature, exceptions)); case "shouldShowTooltip": return new TransformShowTooltip(api, super.visitMethod(access, name, desc, signature, exceptions)); default: diff --git a/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverDualFluidInterface.java b/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverDualFluidInterface.java index 257020e6..c6781060 100644 --- a/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverDualFluidInterface.java +++ b/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverDualFluidInterface.java @@ -1,12 +1,5 @@ package com.glodblock.github.crossmod.opencomputers; -import appeng.api.parts.IPartHost; -import com.glodblock.github.common.parts.PartFluidInterface; -import com.glodblock.github.common.tile.TileFluidInterface; -import com.glodblock.github.loader.ItemAndBlockHolder; -import com.glodblock.github.util.DualityFluidInterface; -import com.glodblock.github.util.NameConst; -import com.glodblock.github.util.Util; import li.cil.oc.api.driver.EnvironmentProvider; import li.cil.oc.api.driver.NamedBlock; import li.cil.oc.api.driver.SidedBlock; @@ -18,12 +11,22 @@ import li.cil.oc.api.network.ManagedEnvironment; import li.cil.oc.api.network.Node; import li.cil.oc.integration.ManagedTileEntityEnvironment; import li.cil.oc.server.network.Component; + import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; +import appeng.api.parts.IPartHost; + +import com.glodblock.github.common.parts.PartFluidInterface; +import com.glodblock.github.common.tile.TileFluidInterface; +import com.glodblock.github.loader.ItemAndBlockHolder; +import com.glodblock.github.util.DualityFluidInterface; +import com.glodblock.github.util.NameConst; +import com.glodblock.github.util.Util; + public class DriverDualFluidInterface implements SidedBlock { @Override @@ -45,20 +48,18 @@ public class DriverDualFluidInterface implements SidedBlock { } @Callback( - doc = - "function(index:number):table -- Get the configuration of the dual fluid interface on the specified slot.") + doc = "function(index:number):table -- Get the configuration of the dual fluid interface on the specified slot.") public Object[] getFluidInterfaceConfiguration(Context context, Arguments args) { int index = args.checkInteger(0); if (index >= 0 && index < DualityFluidInterface.NUMBER_OF_TANKS) { FluidStack fluid = tileEntity.getConfig().getFluidStackInSlot(index); - return new Object[] {fluid == null ? null : new FluidStack(fluid.getFluid(), 1000)}; + return new Object[] { fluid == null ? null : new FluidStack(fluid.getFluid(), 1000) }; } throw new IllegalArgumentException("invalid slot"); } @Callback( - doc = - "function(index:number[, database:address, entry:number]):boolean -- Configure the filter in fluid interface on the specified slot.") + doc = "function(index:number[, database:address, entry:number]):boolean -- Configure the filter in fluid interface on the specified slot.") public Object[] setFluidInterfaceConfiguration(Context context, Arguments args) { int index = args.checkInteger(0); String address; @@ -69,7 +70,7 @@ public class DriverDualFluidInterface implements SidedBlock { } else { tileEntity.getConfig().setFluidInSlot(index, null); context.pause(0.5); - return new Object[] {true}; + return new Object[] { true }; } Node node = node().network().node(address); if (!(node instanceof Component)) throw new IllegalArgumentException("no such component"); @@ -84,7 +85,7 @@ public class DriverDualFluidInterface implements SidedBlock { tileEntity.getConfig().setFluidInSlot(index, tileEntity.getStandardFluid(fluid)); } context.pause(0.5); - return new Object[] {true}; + return new Object[] { true }; } throw new IllegalArgumentException("invalid slot"); } @@ -125,13 +126,13 @@ public class DriverDualFluidInterface implements SidedBlock { } public static class Provider implements EnvironmentProvider { + Provider() {} @Override public Class getEnvironment(ItemStack itemStack) { - if (itemStack != null - && (itemStack.isItemEqual(ItemAndBlockHolder.FLUID_INTERFACE.stack()) - || itemStack.isItemEqual(ItemAndBlockHolder.INTERFACE.stack()))) { + if (itemStack != null && (itemStack.isItemEqual(ItemAndBlockHolder.FLUID_INTERFACE.stack()) + || itemStack.isItemEqual(ItemAndBlockHolder.INTERFACE.stack()))) { return DriverDualFluidInterface.Environment.class; } return null; diff --git a/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverLevelMaintainer.java b/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverLevelMaintainer.java index fa4c9c9b..dbc46030 100644 --- a/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverLevelMaintainer.java +++ b/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverLevelMaintainer.java @@ -1,14 +1,8 @@ package com.glodblock.github.crossmod.opencomputers; -import appeng.util.item.AEItemStack; -import com.glodblock.github.common.item.ItemFluidDrop; -import com.glodblock.github.common.tile.TileLevelMaintainer; -import com.glodblock.github.inventory.AeItemStackHandler; -import com.glodblock.github.loader.ItemAndBlockHolder; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; import java.util.HashMap; import java.util.Map; + import li.cil.oc.api.driver.EnvironmentProvider; import li.cil.oc.api.driver.NamedBlock; import li.cil.oc.api.internal.Database; @@ -20,12 +14,23 @@ import li.cil.oc.api.network.ManagedEnvironment; import li.cil.oc.api.network.Node; import li.cil.oc.api.prefab.DriverSidedTileEntity; import li.cil.oc.integration.ManagedTileEntityEnvironment; + import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import appeng.util.item.AEItemStack; + +import com.glodblock.github.common.item.ItemFluidDrop; +import com.glodblock.github.common.tile.TileLevelMaintainer; +import com.glodblock.github.inventory.AeItemStackHandler; +import com.glodblock.github.loader.ItemAndBlockHolder; +import com.glodblock.github.util.NameConst; +import cpw.mods.fml.common.registry.GameRegistry; + public class DriverLevelMaintainer extends DriverSidedTileEntity { + @Override public Class getTileEntityClass() { return TileLevelMaintainer.class; @@ -100,18 +105,16 @@ public class DriverLevelMaintainer extends DriverSidedTileEntity { result.put("hasTag", stack.hasTagCompound()); result.put("label", stack.getDisplayName()); result.put("maxDamage", stack.getMaxDamage()); - result.put( - "name", - GameRegistry.findUniqueIdentifierFor(stack.getItem()).toString()); + result.put("name", GameRegistry.findUniqueIdentifierFor(stack.getItem()).toString()); result.put("quantity", tileEntity.requests.getQuantity(slot)); result.put("batch", tileEntity.requests.getBatchSize(slot)); result.put("isFluid", ItemFluidDrop.isFluidStack(stack)); if (ItemFluidDrop.isFluidStack(stack)) result.put("fluid", ItemFluidDrop.getFluidStack(stack)); result.put("isEnable", tileEntity.requests.isEnable(slot)); result.put("isDone", tileEntity.requests.isDone(slot)); - return new Object[] {result}; + return new Object[] { result }; } - return new Object[] {null}; + return new Object[] { null }; } private void setSlot(int slot, String address, int index) { @@ -123,8 +126,7 @@ public class DriverLevelMaintainer extends DriverSidedTileEntity { throw new IllegalArgumentException("Invalid slot"); } dbStack.stackSize = 1; - ((AeItemStackHandler) tileEntity.getInventory()) - .getAeInventory() + ((AeItemStackHandler) tileEntity.getInventory()).getAeInventory() .setStack(slot, AEItemStack.create(dbStack)); } else { throw new IllegalArgumentException("Not a database"); @@ -135,8 +137,7 @@ public class DriverLevelMaintainer extends DriverSidedTileEntity { } @Callback( - doc = - "function(slot:number[,database:address[,index:number]],quantity:number,batch:number):boolean -- Configuration the slot.") + doc = "function(slot:number[,database:address[,index:number]],quantity:number,batch:number):boolean -- Configuration the slot.") public Object[] setSlot(Context context, Arguments args) { int slot; String address; @@ -162,7 +163,7 @@ public class DriverLevelMaintainer extends DriverSidedTileEntity { } else { throw new IllegalArgumentException("Invalid args"); } - return new Object[] {true}; + return new Object[] { true }; } private boolean isActive() { @@ -171,22 +172,22 @@ public class DriverLevelMaintainer extends DriverSidedTileEntity { @Callback(doc = "function(slot:number):boolean -- Get the crafting task state.") public Object[] isDone(Context context, Arguments args) { - return new Object[] {this.isDone(args)}; + return new Object[] { this.isDone(args) }; } @Callback(doc = "function(slot:number):boolean -- Get the crafting state of slot.") public Object[] isEnable(Context context, Arguments args) { - return new Object[] {this.isEnable(args)}; + return new Object[] { this.isEnable(args) }; } @Callback(doc = "function(slot:number,value:boolean):boolean -- Set the crafting state of slot.") public Object[] setEnable(Context context, Arguments args) { - return new Object[] {this.setEnable(args)}; + return new Object[] { this.setEnable(args) }; } @Callback(doc = "function():boolean Get Level Maintainer state") public Object[] active(Context context, Arguments args) { - return new Object[] {this.isActive()}; + return new Object[] { this.isActive() }; } @Override @@ -201,6 +202,7 @@ public class DriverLevelMaintainer extends DriverSidedTileEntity { } public static class Provider implements EnvironmentProvider { + Provider() {} @Override diff --git a/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverOCPatternEditor.java b/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverOCPatternEditor.java index d61a45e9..935cd8af 100644 --- a/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverOCPatternEditor.java +++ b/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverOCPatternEditor.java @@ -1,13 +1,5 @@ package com.glodblock.github.crossmod.opencomputers; -import appeng.items.misc.ItemEncodedPattern; -import appeng.util.item.AEItemStack; -import com.glodblock.github.common.item.ItemFluidDrop; -import com.glodblock.github.common.item.ItemFluidEncodedPattern; -import com.glodblock.github.common.tile.TileOCPatternEditor; -import com.glodblock.github.loader.ItemAndBlockHolder; -import com.glodblock.github.util.NameConst; -import com.glodblock.github.util.Util; import li.cil.oc.api.driver.EnvironmentProvider; import li.cil.oc.api.driver.NamedBlock; import li.cil.oc.api.internal.Database; @@ -19,6 +11,7 @@ import li.cil.oc.api.network.ManagedEnvironment; import li.cil.oc.api.network.Node; import li.cil.oc.api.prefab.DriverSidedTileEntity; import li.cil.oc.integration.ManagedTileEntityEnvironment; + import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -27,6 +20,16 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; +import appeng.items.misc.ItemEncodedPattern; +import appeng.util.item.AEItemStack; + +import com.glodblock.github.common.item.ItemFluidDrop; +import com.glodblock.github.common.item.ItemFluidEncodedPattern; +import com.glodblock.github.common.tile.TileOCPatternEditor; +import com.glodblock.github.loader.ItemAndBlockHolder; +import com.glodblock.github.util.NameConst; +import com.glodblock.github.util.Util; + public class DriverOCPatternEditor extends DriverSidedTileEntity { public DriverOCPatternEditor() {} @@ -134,7 +137,7 @@ public class DriverOCPatternEditor extends DriverSidedTileEntity { inv.setInventorySlotContents(slot, null); inv.setInventorySlotContents(slot, pattern); context.pause(0.1); - return new Object[] {true}; + return new Object[] { true }; } else { throw new IllegalArgumentException("Not Fluid Encoded pattern!"); } @@ -170,7 +173,7 @@ public class DriverOCPatternEditor extends DriverSidedTileEntity { inv.setInventorySlotContents(slot, null); inv.setInventorySlotContents(slot, pattern); context.pause(0.1); - return new Object[] {true}; + return new Object[] { true }; } else { throw new IllegalArgumentException("Not Fluid Encoded pattern!"); } @@ -184,18 +187,17 @@ public class DriverOCPatternEditor extends DriverSidedTileEntity { if (!validPattern(stack)) { throw new IllegalArgumentException("Not Fluid Encoded pattern!"); } - return new Object[] {stack}; + return new Object[] { stack }; } @Callback( - doc = - "function([slot:number][, database:address, entry:number[, size:number]]):boolean -- Configure the interface.") + doc = "function([slot:number][, database:address, entry:number[, size:number]]):boolean -- Configure the interface.") public Object[] setInterfaceConfiguration(Context context, Arguments args) { IInventory config = tileEntity.getInternalInventory(); int slot = args.isString(0) ? 0 : optSlot(args, config, 0, 0); config.setInventorySlotContents(slot, getStack(args)); context.pause(0.5); - return new Object[] {true}; + return new Object[] { true }; } @Callback(doc = "function([slot:number]):table -- Get the given pattern in the interface.") @@ -203,33 +205,29 @@ public class DriverOCPatternEditor extends DriverSidedTileEntity { IInventory inv = tileEntity.getInternalInventory(); int slot = optSlot(args, inv, 0, 0); ItemStack stack = inv.getStackInSlot(slot); - return new Object[] {stack}; + return new Object[] { stack }; } @Callback( - doc = - "function(slot:number, database:address, entry:number, size:number, index:number):boolean -- Set the pattern item input at the given index.") + doc = "function(slot:number, database:address, entry:number, size:number, index:number):boolean -- Set the pattern item input at the given index.") public Object[] setInterfacePatternItemInput(Context context, Arguments args) { return setPatternSlot(context, args, "in", false); } @Callback( - doc = - "function(slot:number, database:address, entry:number, size:number, index:number):boolean -- Set the pattern item output at the given index.") + doc = "function(slot:number, database:address, entry:number, size:number, index:number):boolean -- Set the pattern item output at the given index.") public Object[] setInterfacePatternItemOutput(Context context, Arguments args) { return setPatternSlot(context, args, "out", false); } @Callback( - doc = - "function(slot:number, database:address, entry:number, size:number, index:number):boolean -- Set the pattern fluid input at the given index.") + doc = "function(slot:number, database:address, entry:number, size:number, index:number):boolean -- Set the pattern fluid input at the given index.") public Object[] setInterfacePatternFluidInput(Context context, Arguments args) { return setPatternSlot(context, args, "in", true); } @Callback( - doc = - "function(slot:number, database:address, entry:number, size:number, index:number):boolean -- Set the pattern fluid output at the given index.") + doc = "function(slot:number, database:address, entry:number, size:number, index:number):boolean -- Set the pattern fluid output at the given index.") public Object[] setInterfacePatternFluidOutput(Context context, Arguments args) { return setPatternSlot(context, args, "out", true); } @@ -256,6 +254,7 @@ public class DriverOCPatternEditor extends DriverSidedTileEntity { } public static class Provider implements EnvironmentProvider { + Provider() {} @Override diff --git a/src/main/java/com/glodblock/github/crossmod/waila/FCTooltipHandlerWaila.java b/src/main/java/com/glodblock/github/crossmod/waila/FCTooltipHandlerWaila.java index 88af835e..5452498e 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/FCTooltipHandlerWaila.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/FCTooltipHandlerWaila.java @@ -1,24 +1,28 @@ package com.glodblock.github.crossmod.waila; -import com.glodblock.github.common.item.ItemFluidDrop; -import com.glodblock.github.util.Util; import java.util.List; + import mcp.mobius.waila.handlers.nei.TooltipHandlerWaila; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.fluids.FluidStack; +import com.glodblock.github.common.item.ItemFluidDrop; +import com.glodblock.github.util.Util; + public class FCTooltipHandlerWaila extends TooltipHandlerWaila { + @Override public List handleItemDisplayName(GuiContainer arg0, ItemStack itemstack, List currenttip) { return currenttip; } @Override - public List handleItemTooltip( - GuiContainer arg0, ItemStack itemstack, int arg2, int arg3, List currenttip) { + public List handleItemTooltip(GuiContainer arg0, ItemStack itemstack, int arg2, int arg3, + List currenttip) { if (itemstack != null && itemstack.getItem() instanceof ItemFluidDrop && currenttip.size() > 0) { FluidStack fs = ItemFluidDrop.getFluidStack(itemstack); if (fs == null) return currenttip; @@ -27,10 +31,7 @@ public class FCTooltipHandlerWaila extends TooltipHandlerWaila { currenttip.set( 1, EnumChatFormatting.GRAY - + String.format( - "%s:%s", - Util.getFluidModID(fs.getFluid()), - fs.getFluid().getName()) + + String.format("%s:%s", Util.getFluidModID(fs.getFluid()), fs.getFluid().getName()) + EnumChatFormatting.RESET); } String modName = Util.getFluidModName(fs.getFluid()); diff --git a/src/main/java/com/glodblock/github/crossmod/waila/PartWailaDataProvider.java b/src/main/java/com/glodblock/github/crossmod/waila/PartWailaDataProvider.java index 07159c84..a562eb29 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/PartWailaDataProvider.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/PartWailaDataProvider.java @@ -1,18 +1,11 @@ package com.glodblock.github.crossmod.waila; -import appeng.api.parts.IPart; -import appeng.integration.modules.waila.part.IPartWailaDataProvider; -import appeng.integration.modules.waila.part.PartAccessor; -import appeng.integration.modules.waila.part.Tracer; -import com.glodblock.github.crossmod.waila.part.FluidInvWailaDataProvider; -import com.glodblock.github.crossmod.waila.part.FluidMonitorWailaDataProvider; -import com.glodblock.github.crossmod.waila.part.SpeedWailaDataProvider; -import com.google.common.base.Optional; -import com.google.common.collect.Lists; import java.util.List; + import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; import mcp.mobius.waila.api.IWailaDataProvider; + import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -20,7 +13,19 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; +import appeng.api.parts.IPart; +import appeng.integration.modules.waila.part.IPartWailaDataProvider; +import appeng.integration.modules.waila.part.PartAccessor; +import appeng.integration.modules.waila.part.Tracer; + +import com.glodblock.github.crossmod.waila.part.FluidInvWailaDataProvider; +import com.glodblock.github.crossmod.waila.part.FluidMonitorWailaDataProvider; +import com.glodblock.github.crossmod.waila.part.SpeedWailaDataProvider; +import com.google.common.base.Optional; +import com.google.common.collect.Lists; + public class PartWailaDataProvider implements IWailaDataProvider { + private final List providers; private final PartAccessor accessor = new PartAccessor(); private final Tracer tracer = new Tracer(); @@ -55,11 +60,8 @@ public class PartWailaDataProvider implements IWailaDataProvider { } @Override - public List getWailaHead( - final ItemStack itemStack, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaHead(final ItemStack itemStack, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { final TileEntity te = accessor.getTileEntity(); final MovingObjectPosition mop = accessor.getPosition(); @@ -77,11 +79,8 @@ public class PartWailaDataProvider implements IWailaDataProvider { } @Override - public List getWailaBody( - final ItemStack itemStack, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaBody(final ItemStack itemStack, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { final TileEntity te = accessor.getTileEntity(); final MovingObjectPosition mop = accessor.getPosition(); @@ -99,11 +98,8 @@ public class PartWailaDataProvider implements IWailaDataProvider { } @Override - public List getWailaTail( - final ItemStack itemStack, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaTail(final ItemStack itemStack, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { final TileEntity te = accessor.getTileEntity(); final MovingObjectPosition mop = accessor.getPosition(); @@ -121,14 +117,8 @@ public class PartWailaDataProvider implements IWailaDataProvider { } @Override - public NBTTagCompound getNBTData( - final EntityPlayerMP player, - final TileEntity te, - final NBTTagCompound tag, - final World world, - final int x, - final int y, - final int z) { + public NBTTagCompound getNBTData(final EntityPlayerMP player, final TileEntity te, final NBTTagCompound tag, + final World world, final int x, final int y, final int z) { final MovingObjectPosition mop = this.tracer.retraceBlock(world, player, x, y, z); if (mop != null) { diff --git a/src/main/java/com/glodblock/github/crossmod/waila/TileWailaDataProvider.java b/src/main/java/com/glodblock/github/crossmod/waila/TileWailaDataProvider.java index 11fc32fb..c2222b94 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/TileWailaDataProvider.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/TileWailaDataProvider.java @@ -1,19 +1,23 @@ package com.glodblock.github.crossmod.waila; -import com.glodblock.github.crossmod.waila.tile.FluidInvWailaDataProvider; -import com.glodblock.github.crossmod.waila.tile.LevelMaintainerWailaDataProvide; -import com.google.common.collect.Lists; import java.util.List; + import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; import mcp.mobius.waila.api.IWailaDataProvider; + import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import com.glodblock.github.crossmod.waila.tile.FluidInvWailaDataProvider; +import com.glodblock.github.crossmod.waila.tile.LevelMaintainerWailaDataProvide; +import com.google.common.collect.Lists; + public class TileWailaDataProvider implements IWailaDataProvider { + private final List providers; public TileWailaDataProvider() { @@ -28,11 +32,8 @@ public class TileWailaDataProvider implements IWailaDataProvider { } @Override - public List getWailaHead( - final ItemStack itemStack, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaHead(final ItemStack itemStack, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { for (final IWailaDataProvider provider : this.providers) { provider.getWailaHead(itemStack, currentToolTip, accessor, config); } @@ -41,11 +42,8 @@ public class TileWailaDataProvider implements IWailaDataProvider { } @Override - public List getWailaBody( - final ItemStack itemStack, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaBody(final ItemStack itemStack, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { for (final IWailaDataProvider provider : this.providers) { provider.getWailaBody(itemStack, currentToolTip, accessor, config); } @@ -54,11 +52,8 @@ public class TileWailaDataProvider implements IWailaDataProvider { } @Override - public List getWailaTail( - final ItemStack itemStack, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaTail(final ItemStack itemStack, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { for (final IWailaDataProvider provider : this.providers) { provider.getWailaTail(itemStack, currentToolTip, accessor, config); } @@ -67,14 +62,8 @@ public class TileWailaDataProvider implements IWailaDataProvider { } @Override - public NBTTagCompound getNBTData( - final EntityPlayerMP player, - final TileEntity te, - final NBTTagCompound tag, - final World world, - final int x, - final int y, - final int z) { + public NBTTagCompound getNBTData(final EntityPlayerMP player, final TileEntity te, final NBTTagCompound tag, + final World world, final int x, final int y, final int z) { for (final IWailaDataProvider provider : this.providers) { provider.getNBTData(player, te, tag, world, x, y, z); } diff --git a/src/main/java/com/glodblock/github/crossmod/waila/Tooltip.java b/src/main/java/com/glodblock/github/crossmod/waila/Tooltip.java index ddc7d9dd..eba29442 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/Tooltip.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/Tooltip.java @@ -1,21 +1,23 @@ package com.glodblock.github.crossmod.waila; -import com.glodblock.github.util.NameConst; -import com.glodblock.github.util.Util; import java.text.NumberFormat; + import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; import net.minecraftforge.fluids.FluidStack; +import com.glodblock.github.util.NameConst; +import com.glodblock.github.util.Util; + public class Tooltip { + public static String fluidFormat(String name, long amount) { return String.format("%s: %s mB", name, NumberFormat.getInstance().format(amount)); } public static String partFluidBusFormat(int amount) { - return String.format( - "%s: %s mB/t", - I18n.format(NameConst.WAILA_SPEED), NumberFormat.getInstance().format(amount)); + return String + .format("%s: %s mB/t", I18n.format(NameConst.WAILA_SPEED), NumberFormat.getInstance().format(amount)); } public static String tileFluidInterfaceFormat(String name, int amount, int face) { diff --git a/src/main/java/com/glodblock/github/crossmod/waila/WailaInit.java b/src/main/java/com/glodblock/github/crossmod/waila/WailaInit.java index 5434b07c..70186a9a 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/WailaInit.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/WailaInit.java @@ -1,12 +1,12 @@ package com.glodblock.github.crossmod.waila; +import mcp.mobius.waila.api.IWailaDataProvider; +import mcp.mobius.waila.api.IWailaRegistrar; import appeng.api.parts.IPartHost; import appeng.tile.AEBaseTile; import appeng.util.Platform; import codechicken.nei.guihook.GuiContainerManager; import cpw.mods.fml.common.event.FMLInterModComms; -import mcp.mobius.waila.api.IWailaDataProvider; -import mcp.mobius.waila.api.IWailaRegistrar; public class WailaInit { diff --git a/src/main/java/com/glodblock/github/crossmod/waila/part/FluidInvWailaDataProvider.java b/src/main/java/com/glodblock/github/crossmod/waila/part/FluidInvWailaDataProvider.java index a1162153..a4625e37 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/part/FluidInvWailaDataProvider.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/part/FluidInvWailaDataProvider.java @@ -1,26 +1,28 @@ package com.glodblock.github.crossmod.waila.part; -import appeng.api.parts.IPart; -import appeng.integration.modules.waila.part.BasePartWailaDataProvider; -import com.glodblock.github.crossmod.waila.Tooltip; -import com.glodblock.github.inventory.AEFluidInventory; -import com.glodblock.github.inventory.IAEFluidInventory; import java.util.List; + import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; + import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; +import appeng.api.parts.IPart; +import appeng.integration.modules.waila.part.BasePartWailaDataProvider; + +import com.glodblock.github.crossmod.waila.Tooltip; +import com.glodblock.github.inventory.AEFluidInventory; +import com.glodblock.github.inventory.IAEFluidInventory; + public class FluidInvWailaDataProvider extends BasePartWailaDataProvider { + @Override - public List getWailaBody( - final IPart part, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaBody(final IPart part, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { if (part instanceof IAEFluidInventory) { ((IAEFluidInventory) part).getInternalFluid().readFromNBT(accessor.getNBTData(), "fluidInv"); AEFluidInventory fluidInventory = ((IAEFluidInventory) part).getInternalFluid(); @@ -34,15 +36,8 @@ public class FluidInvWailaDataProvider extends BasePartWailaDataProvider { } @Override - public NBTTagCompound getNBTData( - final EntityPlayerMP player, - final IPart part, - final TileEntity te, - final NBTTagCompound tag, - final World world, - final int x, - final int y, - final int z) { + public NBTTagCompound getNBTData(final EntityPlayerMP player, final IPart part, final TileEntity te, + final NBTTagCompound tag, final World world, final int x, final int y, final int z) { if (part instanceof IAEFluidInventory) { ((IAEFluidInventory) part).getInternalFluid().writeToNBT(tag, "fluidInv"); } diff --git a/src/main/java/com/glodblock/github/crossmod/waila/part/FluidMonitorWailaDataProvider.java b/src/main/java/com/glodblock/github/crossmod/waila/part/FluidMonitorWailaDataProvider.java index edac637d..9f03c72a 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/part/FluidMonitorWailaDataProvider.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/part/FluidMonitorWailaDataProvider.java @@ -1,48 +1,41 @@ package com.glodblock.github.crossmod.waila.part; -import appeng.api.parts.IPart; -import appeng.api.storage.data.IAEFluidStack; -import appeng.integration.modules.waila.part.BasePartWailaDataProvider; -import com.glodblock.github.common.parts.base.FCPartMonitor; -import com.glodblock.github.crossmod.waila.Tooltip; -import com.glodblock.github.util.Util; import java.util.List; + import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; + import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import appeng.api.parts.IPart; +import appeng.api.storage.data.IAEFluidStack; +import appeng.integration.modules.waila.part.BasePartWailaDataProvider; + +import com.glodblock.github.common.parts.base.FCPartMonitor; +import com.glodblock.github.crossmod.waila.Tooltip; +import com.glodblock.github.util.Util; + public class FluidMonitorWailaDataProvider extends BasePartWailaDataProvider { + private final String key = "fluidStore"; @Override - public List getWailaBody( - final IPart part, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaBody(final IPart part, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { if (part instanceof FCPartMonitor && accessor.getNBTData().hasKey(key)) { - IAEFluidStack iaeFluidStack = - Util.loadFluidStackFromNBT(accessor.getNBTData().getCompoundTag(key)); - if (iaeFluidStack != null) - currentToolTip.add( - Tooltip.fluidFormat(iaeFluidStack.getFluid().getLocalizedName(), iaeFluidStack.getStackSize())); + IAEFluidStack iaeFluidStack = Util.loadFluidStackFromNBT(accessor.getNBTData().getCompoundTag(key)); + if (iaeFluidStack != null) currentToolTip.add( + Tooltip.fluidFormat(iaeFluidStack.getFluid().getLocalizedName(), iaeFluidStack.getStackSize())); } return currentToolTip; } @Override - public NBTTagCompound getNBTData( - final EntityPlayerMP player, - final IPart part, - final TileEntity te, - final NBTTagCompound tag, - final World world, - final int x, - final int y, - final int z) { + public NBTTagCompound getNBTData(final EntityPlayerMP player, final IPart part, final TileEntity te, + final NBTTagCompound tag, final World world, final int x, final int y, final int z) { if (part instanceof FCPartMonitor && ((FCPartMonitor) part).getAEStoreFluidStack() != null) { NBTTagCompound data = new NBTTagCompound(); ((FCPartMonitor) part).getAEStoreFluidStack().writeToNBT(data); diff --git a/src/main/java/com/glodblock/github/crossmod/waila/part/SpeedWailaDataProvider.java b/src/main/java/com/glodblock/github/crossmod/waila/part/SpeedWailaDataProvider.java index 6835f344..fc38ee50 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/part/SpeedWailaDataProvider.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/part/SpeedWailaDataProvider.java @@ -1,25 +1,26 @@ package com.glodblock.github.crossmod.waila.part; -import appeng.api.parts.IPart; -import appeng.integration.modules.waila.part.BasePartWailaDataProvider; -import com.glodblock.github.common.parts.base.FCSharedFluidBus; -import com.glodblock.github.crossmod.waila.Tooltip; import java.util.List; + import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; + import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import appeng.api.parts.IPart; +import appeng.integration.modules.waila.part.BasePartWailaDataProvider; + +import com.glodblock.github.common.parts.base.FCSharedFluidBus; +import com.glodblock.github.crossmod.waila.Tooltip; + public class SpeedWailaDataProvider extends BasePartWailaDataProvider { @Override - public List getWailaBody( - final IPart part, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaBody(final IPart part, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { if (part instanceof FCSharedFluidBus) { part.readFromNBT(accessor.getNBTData()); currentToolTip.add(Tooltip.partFluidBusFormat(((FCSharedFluidBus) part).calculateAmountToSend() / 5)); @@ -28,15 +29,8 @@ public class SpeedWailaDataProvider extends BasePartWailaDataProvider { } @Override - public NBTTagCompound getNBTData( - final EntityPlayerMP player, - final IPart part, - final TileEntity te, - final NBTTagCompound tag, - final World world, - final int x, - final int y, - final int z) { + public NBTTagCompound getNBTData(final EntityPlayerMP player, final IPart part, final TileEntity te, + final NBTTagCompound tag, final World world, final int x, final int y, final int z) { if (part instanceof FCSharedFluidBus) { part.writeToNBT(tag); } diff --git a/src/main/java/com/glodblock/github/crossmod/waila/tile/FluidInvWailaDataProvider.java b/src/main/java/com/glodblock/github/crossmod/waila/tile/FluidInvWailaDataProvider.java index 33c41741..557af384 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/tile/FluidInvWailaDataProvider.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/tile/FluidInvWailaDataProvider.java @@ -1,16 +1,10 @@ package com.glodblock.github.crossmod.waila.tile; -import appeng.integration.modules.waila.BaseWailaDataProvider; -import com.glodblock.github.common.item.ItemFluidPacket; -import com.glodblock.github.common.tile.TileFluidBuffer; -import com.glodblock.github.common.tile.TileFluidInterface; -import com.glodblock.github.common.tile.TileFluidPacketDecoder; -import com.glodblock.github.crossmod.waila.Tooltip; -import com.glodblock.github.inventory.IAEFluidInventory; -import com.glodblock.github.inventory.IAEFluidTank; import java.util.List; + import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; + import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -19,14 +13,21 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; +import appeng.integration.modules.waila.BaseWailaDataProvider; + +import com.glodblock.github.common.item.ItemFluidPacket; +import com.glodblock.github.common.tile.TileFluidBuffer; +import com.glodblock.github.common.tile.TileFluidInterface; +import com.glodblock.github.common.tile.TileFluidPacketDecoder; +import com.glodblock.github.crossmod.waila.Tooltip; +import com.glodblock.github.inventory.IAEFluidInventory; +import com.glodblock.github.inventory.IAEFluidTank; + public class FluidInvWailaDataProvider extends BaseWailaDataProvider { @Override - public List getWailaBody( - final ItemStack itemStack, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaBody(final ItemStack itemStack, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { final TileEntity te = accessor.getTileEntity(); if (te instanceof TileFluidInterface) { ((IAEFluidInventory) te).getInternalFluid().readFromNBT(accessor.getNBTData(), "fluidInv"); @@ -53,8 +54,7 @@ public class FluidInvWailaDataProvider extends BaseWailaDataProvider { if (ft.getFluidInSlot(i) == null) continue; FluidStack fs = ft.getFluidInSlot(i).getFluidStack(); if (prefix) { - currentToolTip.add( - Tooltip.tileFluidInterfaceFormat(fs.getFluid().getLocalizedName(), fs.amount, i)); + currentToolTip.add(Tooltip.tileFluidInterfaceFormat(fs.getFluid().getLocalizedName(), fs.amount, i)); } else { currentToolTip.add(Tooltip.fluidFormat(fs.getFluid().getLocalizedName(), fs.amount)); } @@ -66,14 +66,8 @@ public class FluidInvWailaDataProvider extends BaseWailaDataProvider { } @Override - public NBTTagCompound getNBTData( - final EntityPlayerMP player, - final TileEntity te, - final NBTTagCompound tag, - final World world, - final int x, - final int y, - final int z) { + public NBTTagCompound getNBTData(final EntityPlayerMP player, final TileEntity te, final NBTTagCompound tag, + final World world, final int x, final int y, final int z) { if (te instanceof TileFluidBuffer) { ((TileFluidBuffer) te).updateFluidStore(); } diff --git a/src/main/java/com/glodblock/github/crossmod/waila/tile/LevelMaintainerWailaDataProvide.java b/src/main/java/com/glodblock/github/crossmod/waila/tile/LevelMaintainerWailaDataProvide.java index 77db3979..0c4efefe 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/tile/LevelMaintainerWailaDataProvide.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/tile/LevelMaintainerWailaDataProvide.java @@ -1,37 +1,39 @@ package com.glodblock.github.crossmod.waila.tile; -import appeng.api.storage.data.IAEItemStack; -import appeng.integration.modules.waila.BaseWailaDataProvider; -import com.glodblock.github.common.tile.TileLevelMaintainer; -import com.glodblock.github.crossmod.waila.Tooltip; import java.util.List; + import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; + import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import appeng.api.storage.data.IAEItemStack; +import appeng.integration.modules.waila.BaseWailaDataProvider; + +import com.glodblock.github.common.tile.TileLevelMaintainer; +import com.glodblock.github.crossmod.waila.Tooltip; + public class LevelMaintainerWailaDataProvide extends BaseWailaDataProvider { + @Override - public List getWailaBody( - final ItemStack itemStack, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaBody(final ItemStack itemStack, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { final TileEntity te = accessor.getTileEntity(); if (te instanceof TileLevelMaintainer) { te.readFromNBT(accessor.getNBTData()); for (int i = 0; i < TileLevelMaintainer.REQ_COUNT; i++) { - IAEItemStack ias = - ((TileLevelMaintainer) te).requests.getRequestStacks().getStack(i); + IAEItemStack ias = ((TileLevelMaintainer) te).requests.getRequestStacks().getStack(i); if (ias != null) { - currentToolTip.add(Tooltip.tileLevelMaintainerFormat( - ias.getItemStack().getDisplayName(), - ((TileLevelMaintainer) te).requests.getQuantity(i), - ((TileLevelMaintainer) te).requests.getBatchSize(i), - ((TileLevelMaintainer) te).requests.isEnable(i))); + currentToolTip.add( + Tooltip.tileLevelMaintainerFormat( + ias.getItemStack().getDisplayName(), + ((TileLevelMaintainer) te).requests.getQuantity(i), + ((TileLevelMaintainer) te).requests.getBatchSize(i), + ((TileLevelMaintainer) te).requests.isEnable(i))); } } } @@ -39,14 +41,8 @@ public class LevelMaintainerWailaDataProvide extends BaseWailaDataProvider { } @Override - public NBTTagCompound getNBTData( - final EntityPlayerMP player, - final TileEntity te, - final NBTTagCompound tag, - final World world, - final int x, - final int y, - final int z) { + public NBTTagCompound getNBTData(final EntityPlayerMP player, final TileEntity te, final NBTTagCompound tag, + final World world, final int x, final int y, final int z) { if (te instanceof TileLevelMaintainer) { te.writeToNBT(tag); } diff --git a/src/main/java/com/glodblock/github/inventory/AEFluidInventory.java b/src/main/java/com/glodblock/github/inventory/AEFluidInventory.java index 52cdd74e..7d092b04 100644 --- a/src/main/java/com/glodblock/github/inventory/AEFluidInventory.java +++ b/src/main/java/com/glodblock/github/inventory/AEFluidInventory.java @@ -1,12 +1,7 @@ package com.glodblock.github.inventory; -import appeng.api.storage.data.IAEFluidStack; -import appeng.core.AELog; -import appeng.util.Platform; -import appeng.util.item.AEFluidStack; -import com.glodblock.github.util.Util; -import io.netty.buffer.ByteBuf; import java.io.IOException; + import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; @@ -14,7 +9,16 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidTank; +import appeng.api.storage.data.IAEFluidStack; +import appeng.core.AELog; +import appeng.util.Platform; +import appeng.util.item.AEFluidStack; + +import com.glodblock.github.util.Util; +import io.netty.buffer.ByteBuf; + public class AEFluidInventory implements IAEFluidTank { + private final IAEFluidStack[] fluids; private final IAEFluidInventory handler; private final int capacity; @@ -33,8 +37,7 @@ public class AEFluidInventory implements IAEFluidTank { @Override public void setFluidInSlot(final int slot, final IAEFluidStack fluid) { if (slot >= 0 && slot < this.getSlots()) { - if (fluid != null - && this.fluids[slot] != null + if (fluid != null && this.fluids[slot] != null && fluid.getFluidStack().isFluidEqual(this.fluids[slot].getFluidStack())) { if (fluid.getStackSize() != this.fluids[slot].getStackSize()) { this.fluids[slot].setStackSize(Math.min(fluid.getStackSize(), this.capacity)); @@ -299,8 +302,7 @@ public class AEFluidInventory implements IAEFluidTank { } target.setTag("#" + x, c); - } catch (final Exception ignored) { - } + } catch (final Exception ignored) {} } } @@ -327,6 +329,7 @@ public class AEFluidInventory implements IAEFluidTank { } private class FluidTankPropertiesWrapper implements IFluidTank { + private final int slot; public FluidTankPropertiesWrapper(final int slot) { @@ -335,8 +338,7 @@ public class AEFluidInventory implements IAEFluidTank { @Override public FluidStack getFluid() { - return AEFluidInventory.this.fluids[this.slot] == null - ? null + return AEFluidInventory.this.fluids[this.slot] == null ? null : AEFluidInventory.this.fluids[this.slot].getFluidStack(); } @@ -366,9 +368,8 @@ public class AEFluidInventory implements IAEFluidTank { acc = Math.max(resource.amount, getCapacity() - getFluid().amount); } if (doFill) { - if (getFluid() == null) - AEFluidInventory.this.setFluidInSlot( - this.slot, AEFluidStack.create(new FluidStack(resource.getFluid(), acc))); + if (getFluid() == null) AEFluidInventory.this + .setFluidInSlot(this.slot, AEFluidStack.create(new FluidStack(resource.getFluid(), acc))); else getFluid().amount += acc; } return acc; diff --git a/src/main/java/com/glodblock/github/inventory/AeItemStackHandler.java b/src/main/java/com/glodblock/github/inventory/AeItemStackHandler.java index c0d2640e..17d23903 100644 --- a/src/main/java/com/glodblock/github/inventory/AeItemStackHandler.java +++ b/src/main/java/com/glodblock/github/inventory/AeItemStackHandler.java @@ -1,10 +1,11 @@ package com.glodblock.github.inventory; -import appeng.api.storage.data.IAEItemStack; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import appeng.api.storage.data.IAEItemStack; + public class AeItemStackHandler implements IInventory { private final AeStackInventory inv; diff --git a/src/main/java/com/glodblock/github/inventory/AeStackInventory.java b/src/main/java/com/glodblock/github/inventory/AeStackInventory.java index aac67dc0..bb7eb36d 100644 --- a/src/main/java/com/glodblock/github/inventory/AeStackInventory.java +++ b/src/main/java/com/glodblock/github/inventory/AeStackInventory.java @@ -1,9 +1,11 @@ package com.glodblock.github.inventory; -import appeng.api.storage.data.IAEStack; import java.util.stream.Stream; + import javax.annotation.Nullable; +import appeng.api.storage.data.IAEStack; + public interface AeStackInventory> extends Iterable { int getSlotCount(); diff --git a/src/main/java/com/glodblock/github/inventory/AeStackInventoryImpl.java b/src/main/java/com/glodblock/github/inventory/AeStackInventoryImpl.java index d7eb896f..c97cd504 100644 --- a/src/main/java/com/glodblock/github/inventory/AeStackInventoryImpl.java +++ b/src/main/java/com/glodblock/github/inventory/AeStackInventoryImpl.java @@ -1,18 +1,22 @@ package com.glodblock.github.inventory; +import java.util.Arrays; +import java.util.Iterator; +import java.util.stream.Stream; + +import javax.annotation.Nullable; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraftforge.common.util.Constants; + import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEStack; import appeng.tile.inventory.IAEAppEngInventory; import appeng.util.item.AEItemStack; + import com.glodblock.github.util.ObjectArrayIterator; import com.glodblock.github.util.Util; -import java.util.Arrays; -import java.util.Iterator; -import java.util.stream.Stream; -import javax.annotation.Nullable; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraftforge.common.util.Constants; public class AeStackInventoryImpl> implements AeStackInventory { diff --git a/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryAdaptor.java b/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryAdaptor.java index 8c219205..848e641e 100644 --- a/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryAdaptor.java +++ b/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryAdaptor.java @@ -1,5 +1,19 @@ package com.glodblock.github.inventory; +import java.util.Collections; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; + +import javax.annotation.Nullable; + +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.config.FuzzyMode; import appeng.api.config.InsertionMode; import appeng.me.GridAccessException; @@ -9,6 +23,7 @@ import appeng.util.InventoryAdaptor; import appeng.util.inv.IInventoryDestination; import appeng.util.inv.ItemSlot; import cofh.api.transport.IItemDuct; + import com.glodblock.github.common.Config; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.common.parts.PartFluidExportBus; @@ -18,27 +33,11 @@ import com.glodblock.github.util.Ae2Reflect; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.Util; -import java.util.Collections; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import javax.annotation.Nullable; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; -import net.minecraftforge.fluids.IFluidHandler; public class FluidConvertingInventoryAdaptor extends InventoryAdaptor { - public FluidConvertingInventoryAdaptor( - @Nullable InventoryAdaptor invItems, - @Nullable IFluidHandler invFluids, - ForgeDirection facing, - BlockPos pos, - boolean isOnmi, - Object eioConduct) { + public FluidConvertingInventoryAdaptor(@Nullable InventoryAdaptor invItems, @Nullable IFluidHandler invFluids, + ForgeDirection facing, BlockPos pos, boolean isOnmi, Object eioConduct) { this.invItems = invItems; this.invFluids = invFluids; this.side = facing; @@ -56,16 +55,13 @@ public class FluidConvertingInventoryAdaptor extends InventoryAdaptor { public static InventoryAdaptor wrap(TileEntity capProvider, ForgeDirection face) { // sometimes i wish 1.7.10 has cap system. - TileEntity inter = capProvider - .getWorldObj() - .getTileEntity( - capProvider.xCoord + face.offsetX, - capProvider.yCoord + face.offsetY, - capProvider.zCoord + face.offsetZ); - if (!Config.noFluidPacket - && !(inter instanceof TileFluidInterface - || Util.getPart(inter, face.getOpposite()) instanceof PartFluidInterface - || Util.getPart(inter, face.getOpposite()) instanceof PartFluidExportBus)) + TileEntity inter = capProvider.getWorldObj().getTileEntity( + capProvider.xCoord + face.offsetX, + capProvider.yCoord + face.offsetY, + capProvider.zCoord + face.offsetZ); + if (!Config.noFluidPacket && !(inter instanceof TileFluidInterface + || Util.getPart(inter, face.getOpposite()) instanceof PartFluidInterface + || Util.getPart(inter, face.getOpposite()) instanceof PartFluidExportBus)) return InventoryAdaptor.getAdaptor(capProvider, face); InventoryAdaptor item = InventoryAdaptor.getAdaptor(capProvider, face); IFluidHandler fluid = capProvider instanceof IFluidHandler ? (IFluidHandler) capProvider : null; @@ -155,14 +151,14 @@ public class FluidConvertingInventoryAdaptor extends InventoryAdaptor { } @Override - public ItemStack removeSimilarItems( - int amount, ItemStack filter, FuzzyMode fuzzyMode, IInventoryDestination destination) { + public ItemStack removeSimilarItems(int amount, ItemStack filter, FuzzyMode fuzzyMode, + IInventoryDestination destination) { return invItems != null ? invItems.removeSimilarItems(amount, filter, fuzzyMode, destination) : null; } @Override - public ItemStack simulateSimilarRemove( - int amount, ItemStack filter, FuzzyMode fuzzyMode, IInventoryDestination destination) { + public ItemStack simulateSimilarRemove(int amount, ItemStack filter, FuzzyMode fuzzyMode, + IInventoryDestination destination) { return invItems != null ? invItems.simulateSimilarRemove(amount, filter, fuzzyMode, destination) : null; } @@ -193,8 +189,7 @@ public class FluidConvertingInventoryAdaptor extends InventoryAdaptor { if (target == null) continue; tankInfos.add(target.getTankInfo(p2p.getSide().getOpposite())); } - } catch (GridAccessException ignore) { - } + } catch (GridAccessException ignore) {} } else { tankInfos.add(invFluids.getTankInfo(this.side)); } diff --git a/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryCrafting.java b/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryCrafting.java index 1b64c4f2..1bd919eb 100644 --- a/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryCrafting.java +++ b/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryCrafting.java @@ -1,13 +1,14 @@ package com.glodblock.github.inventory; -import com.glodblock.github.common.item.ItemFluidDrop; -import com.glodblock.github.common.item.ItemFluidPacket; import net.minecraft.inventory.Container; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import com.glodblock.github.common.item.ItemFluidDrop; +import com.glodblock.github.common.item.ItemFluidPacket; + public class FluidConvertingInventoryCrafting extends InventoryCrafting { public FluidConvertingInventoryCrafting(Container container, int width, int height) { @@ -23,7 +24,8 @@ public class FluidConvertingInventoryCrafting extends InventoryCrafting { } else { // wtf? super.setInventorySlotContents( - index, ItemFluidPacket.newStack(new FluidStack(FluidRegistry.WATER, 1000))); + index, + ItemFluidPacket.newStack(new FluidStack(FluidRegistry.WATER, 1000))); } } else { super.setInventorySlotContents(index, stack); diff --git a/src/main/java/com/glodblock/github/inventory/IAEFluidInventory.java b/src/main/java/com/glodblock/github/inventory/IAEFluidInventory.java index 26f3e2d1..6132beb8 100644 --- a/src/main/java/com/glodblock/github/inventory/IAEFluidInventory.java +++ b/src/main/java/com/glodblock/github/inventory/IAEFluidInventory.java @@ -1,6 +1,7 @@ package com.glodblock.github.inventory; public interface IAEFluidInventory { + void onFluidInventoryChanged(final IAEFluidTank inv, final int slot); AEFluidInventory getInternalFluid(); diff --git a/src/main/java/com/glodblock/github/inventory/IAEFluidTank.java b/src/main/java/com/glodblock/github/inventory/IAEFluidTank.java index 1f83e690..f48d94c7 100644 --- a/src/main/java/com/glodblock/github/inventory/IAEFluidTank.java +++ b/src/main/java/com/glodblock/github/inventory/IAEFluidTank.java @@ -1,9 +1,11 @@ package com.glodblock.github.inventory; -import appeng.api.storage.data.IAEFluidStack; import net.minecraftforge.fluids.IFluidHandler; +import appeng.api.storage.data.IAEFluidStack; + public interface IAEFluidTank extends IFluidHandler { + void setFluidInSlot(final int slot, final IAEFluidStack fluid); IAEFluidStack getFluidInSlot(final int slot); diff --git a/src/main/java/com/glodblock/github/inventory/IDualHost.java b/src/main/java/com/glodblock/github/inventory/IDualHost.java index f391fd3f..2d876982 100644 --- a/src/main/java/com/glodblock/github/inventory/IDualHost.java +++ b/src/main/java/com/glodblock/github/inventory/IDualHost.java @@ -1,9 +1,11 @@ package com.glodblock.github.inventory; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.storage.data.IAEFluidStack; import appeng.tile.inventory.AppEngInternalAEInventory; + import com.glodblock.github.util.DualityFluidInterface; -import net.minecraftforge.fluids.IFluidHandler; public interface IDualHost extends IFluidHandler, IAEFluidInventory { diff --git a/src/main/java/com/glodblock/github/inventory/InventoryHandler.java b/src/main/java/com/glodblock/github/inventory/InventoryHandler.java index c52ea935..05837223 100644 --- a/src/main/java/com/glodblock/github/inventory/InventoryHandler.java +++ b/src/main/java/com/glodblock/github/inventory/InventoryHandler.java @@ -1,16 +1,19 @@ package com.glodblock.github.inventory; +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import com.glodblock.github.FluidCraft; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.network.CPacketSwitchGuis; import com.glodblock.github.util.BlockPos; + import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import javax.annotation.Nullable; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class InventoryHandler implements IGuiHandler { diff --git a/src/main/java/com/glodblock/github/inventory/MEMonitorIFluidHandler.java b/src/main/java/com/glodblock/github/inventory/MEMonitorIFluidHandler.java index 89b62c1e..022c2bc1 100644 --- a/src/main/java/com/glodblock/github/inventory/MEMonitorIFluidHandler.java +++ b/src/main/java/com/glodblock/github/inventory/MEMonitorIFluidHandler.java @@ -1,5 +1,12 @@ package com.glodblock.github.inventory; +import java.util.*; + +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.AEApi; import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; @@ -12,13 +19,9 @@ import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IItemList; import appeng.util.item.AEFluidStack; -import java.util.*; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; -import net.minecraftforge.fluids.IFluidHandler; public class MEMonitorIFluidHandler implements IMEMonitor { + private final IFluidHandler handler; private final ForgeDirection side; private IItemList cache = AEApi.instance().storage().createFluidList(); diff --git a/src/main/java/com/glodblock/github/inventory/external/AEFluidInterfaceHandler.java b/src/main/java/com/glodblock/github/inventory/external/AEFluidInterfaceHandler.java index 72e9d227..19c88103 100644 --- a/src/main/java/com/glodblock/github/inventory/external/AEFluidInterfaceHandler.java +++ b/src/main/java/com/glodblock/github/inventory/external/AEFluidInterfaceHandler.java @@ -1,13 +1,15 @@ package com.glodblock.github.inventory.external; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.api.implementations.tiles.ITileStorageMonitorable; import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.IExternalStorageHandler; import appeng.api.storage.IMEInventory; import appeng.api.storage.StorageChannel; + import com.glodblock.github.util.Util; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; public class AEFluidInterfaceHandler implements IExternalStorageHandler { @@ -30,9 +32,9 @@ public class AEFluidInterfaceHandler implements IExternalStorageHandler { return ((ITileStorageMonitorable) te).getMonitorable(d, src).getFluidInventory(); } else if (Util.getPart(te, d.getOpposite()) instanceof ITileStorageMonitorable && ((ITileStorageMonitorable) Util.getPart(te, d.getOpposite())).getMonitorable(d, src) != null) { - ITileStorageMonitorable part = (ITileStorageMonitorable) Util.getPart(te, d.getOpposite()); - return part.getMonitorable(d, src).getFluidInventory(); - } + ITileStorageMonitorable part = (ITileStorageMonitorable) Util.getPart(te, d.getOpposite()); + return part.getMonitorable(d, src).getFluidInventory(); + } } return null; } diff --git a/src/main/java/com/glodblock/github/inventory/external/AEFluidTankHandler.java b/src/main/java/com/glodblock/github/inventory/external/AEFluidTankHandler.java index 9ddb243b..b4280efa 100644 --- a/src/main/java/com/glodblock/github/inventory/external/AEFluidTankHandler.java +++ b/src/main/java/com/glodblock/github/inventory/external/AEFluidTankHandler.java @@ -1,13 +1,15 @@ package com.glodblock.github.inventory.external; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.IExternalStorageHandler; import appeng.api.storage.IMEInventory; import appeng.api.storage.StorageChannel; + import com.glodblock.github.inventory.MEMonitorIFluidHandler; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.IFluidHandler; // This handler is too generic, so it will overlap other mods' fluid handler. // It will be injected into external handler by ASM to make sure it is executed at last. diff --git a/src/main/java/com/glodblock/github/inventory/gui/ButtonMouseHandler.java b/src/main/java/com/glodblock/github/inventory/gui/ButtonMouseHandler.java index 671481fa..674282e1 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/ButtonMouseHandler.java +++ b/src/main/java/com/glodblock/github/inventory/gui/ButtonMouseHandler.java @@ -1,13 +1,16 @@ package com.glodblock.github.inventory.gui; +import java.util.Collections; +import java.util.List; + +import javax.annotation.Nullable; + +import net.minecraft.client.resources.I18n; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.ITankDump; import com.glodblock.github.network.CPacketDumpTank; import com.glodblock.github.util.NameConst; -import java.util.Collections; -import java.util.List; -import javax.annotation.Nullable; -import net.minecraft.client.resources.I18n; public class ButtonMouseHandler implements MouseRegionManager.Handler { diff --git a/src/main/java/com/glodblock/github/inventory/gui/GuiType.java b/src/main/java/com/glodblock/github/inventory/gui/GuiType.java index 693bab1d..f899daaf 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/GuiType.java +++ b/src/main/java/com/glodblock/github/inventory/gui/GuiType.java @@ -1,11 +1,18 @@ package com.glodblock.github.inventory.gui; +import java.util.List; + +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayer; + import appeng.api.storage.ITerminalHost; import appeng.container.implementations.ContainerCraftAmount; import appeng.container.implementations.ContainerCraftingStatus; import appeng.container.implementations.ContainerPriority; import appeng.helpers.IInterfaceHost; import appeng.helpers.IPriorityHost; + import com.glodblock.github.client.gui.*; import com.glodblock.github.client.gui.container.*; import com.glodblock.github.common.parts.PartFluidLevelEmitter; @@ -16,12 +23,11 @@ import com.glodblock.github.common.tile.*; import com.glodblock.github.inventory.IDualHost; import com.glodblock.github.inventory.item.IFluidPortableCell; import com.google.common.collect.ImmutableList; -import java.util.List; -import javax.annotation.Nullable; -import net.minecraft.entity.player.EntityPlayer; public enum GuiType { + FLUID_LEVEL_EMITTER(new PartGuiFactory(PartFluidLevelEmitter.class) { + @Override protected Object createServerGui(EntityPlayer player, PartFluidLevelEmitter inv) { return new ContainerFluidLevelEmitter(player.inventory, inv); @@ -34,6 +40,7 @@ public enum GuiType { }), LEVEL_MAINTAINER(new TileGuiFactory(TileLevelMaintainer.class) { + @Override protected Object createServerGui(EntityPlayer player, TileLevelMaintainer inv) { return new ContainerLevelMaintainer(player.inventory, inv); @@ -46,6 +53,7 @@ public enum GuiType { }), OC_PATTERN_EDITOR(new TileGuiFactory(TileOCPatternEditor.class) { + @Override protected Object createServerGui(EntityPlayer player, TileOCPatternEditor inv) { return new ContainerOCPatternEditor(player.inventory, inv); @@ -58,6 +66,7 @@ public enum GuiType { }), DUAL_INTERFACE(new TileOrPartGuiFactory(IInterfaceHost.class) { + @Override protected Object createServerGui(EntityPlayer player, IInterfaceHost inv) { return new ContainerDualInterface(player.inventory, inv); @@ -70,6 +79,7 @@ public enum GuiType { }), DUAL_INTERFACE_FLUID(new TileOrPartGuiFactory(IDualHost.class) { + @Override protected Object createServerGui(EntityPlayer player, IDualHost inv) { return new ContainerFluidInterface(player.inventory, inv); @@ -82,6 +92,7 @@ public enum GuiType { }), PRIORITY(new TileOrPartGuiFactory(IPriorityHost.class) { + @Override protected Object createServerGui(EntityPlayer player, IPriorityHost inv) { return new ContainerPriority(player.inventory, inv); @@ -94,6 +105,7 @@ public enum GuiType { }), FLUID_BUS_IO(new PartGuiFactory(FCSharedFluidBus.class) { + @Override protected Object createServerGui(EntityPlayer player, FCSharedFluidBus inv) { return new ContainerFluidIO(player.inventory, inv); @@ -106,6 +118,7 @@ public enum GuiType { }), FLUID_STORAGE_BUS(new PartGuiFactory(PartFluidStorageBus.class) { + @Override protected Object createServerGui(EntityPlayer player, PartFluidStorageBus inv) { return new ContainerFluidStorageBus(player.inventory, inv); @@ -118,6 +131,7 @@ public enum GuiType { }), INGREDIENT_BUFFER(new TileGuiFactory(TileIngredientBuffer.class) { + @Override protected Object createServerGui(EntityPlayer player, TileIngredientBuffer inv) { return new ContainerIngredientBuffer(player.inventory, inv); @@ -130,6 +144,7 @@ public enum GuiType { }), LARGE_INGREDIENT_BUFFER(new TileGuiFactory(TileLargeIngredientBuffer.class) { + @Override protected Object createServerGui(EntityPlayer player, TileLargeIngredientBuffer inv) { return new ContainerLargeIngredientBuffer(player.inventory, inv); @@ -142,6 +157,7 @@ public enum GuiType { }), CRAFTING_STATUS(new PartGuiFactory(FCPart.class) { + @Override protected Object createServerGui(EntityPlayer player, FCPart inv) { return new ContainerCraftingStatus(player.inventory, inv); @@ -154,6 +170,7 @@ public enum GuiType { }), FLUID_TERMINAL(new TileOrPartGuiFactory(ITerminalHost.class) { + @Override protected Object createServerGui(EntityPlayer player, ITerminalHost inv) { return new ContainerFluidMonitor(player.inventory, inv); @@ -166,6 +183,7 @@ public enum GuiType { }), PORTABLE_FLUID_CELL(new ItemGuiFactory(IFluidPortableCell.class) { + @Override protected Object createServerGui(EntityPlayer player, IFluidPortableCell inv) { return new ContainerFluidPortableCell(player.inventory, inv); @@ -178,6 +196,7 @@ public enum GuiType { }), FLUID_PATTERN_TERMINAL(new PartGuiFactory(ITerminalHost.class) { + @Override protected Object createServerGui(EntityPlayer player, ITerminalHost inv) { return new ContainerFluidPatternTerminal(player.inventory, inv); @@ -190,6 +209,7 @@ public enum GuiType { }), FLUID_PATTERN_TERMINAL_EX(new PartGuiFactory(ITerminalHost.class) { + @Override protected Object createServerGui(EntityPlayer player, ITerminalHost inv) { return new ContainerFluidPatternTerminalEx(player.inventory, inv); @@ -202,6 +222,7 @@ public enum GuiType { }), FLUID_PATTERN_ENCODER(new TileGuiFactory(TileFluidPatternEncoder.class) { + @Override protected Object createServerGui(EntityPlayer player, TileFluidPatternEncoder inv) { return new ContainerFluidPatternEncoder(player.inventory, inv); @@ -214,6 +235,7 @@ public enum GuiType { }), FLUID_CRAFTING_CONFIRM(new PartGuiFactory(FCPart.class) { + @Override protected Object createServerGui(EntityPlayer player, FCPart inv) { return new ContainerFluidCraftConfirm(player.inventory, inv); @@ -226,6 +248,7 @@ public enum GuiType { }), FLUID_CRAFTING_AMOUNT(new PartGuiFactory(FCPart.class) { + @Override protected Object createServerGui(EntityPlayer player, FCPart inv) { return new ContainerCraftAmount(player.inventory, inv); @@ -238,6 +261,7 @@ public enum GuiType { }), FLUID_PACKET_DECODER(new TileGuiFactory(TileFluidPacketDecoder.class) { + @Override protected Object createServerGui(EntityPlayer player, TileFluidPacketDecoder inv) { return new ContainerFluidPacketDecoder(player.inventory, inv); @@ -250,6 +274,7 @@ public enum GuiType { }), PATTERN_VALUE_SET(new PartGuiFactory(FCPart.class) { + @Override protected Object createServerGui(EntityPlayer player, FCPart inv) { return new ContainerPatternValueAmount(player.inventory, inv); diff --git a/src/main/java/com/glodblock/github/inventory/gui/IGuiFactory.java b/src/main/java/com/glodblock/github/inventory/gui/IGuiFactory.java index 5a69f441..90777803 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/IGuiFactory.java +++ b/src/main/java/com/glodblock/github/inventory/gui/IGuiFactory.java @@ -1,12 +1,14 @@ package com.glodblock.github.inventory.gui; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import javax.annotation.Nullable; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public interface IGuiFactory { @Nullable diff --git a/src/main/java/com/glodblock/github/inventory/gui/ItemGuiFactory.java b/src/main/java/com/glodblock/github/inventory/gui/ItemGuiFactory.java index 5d80a07e..01354288 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/ItemGuiFactory.java +++ b/src/main/java/com/glodblock/github/inventory/gui/ItemGuiFactory.java @@ -1,14 +1,17 @@ package com.glodblock.github.inventory.gui; -import appeng.container.AEBaseContainer; -import appeng.container.ContainerOpenContext; -import com.glodblock.github.inventory.item.IItemInventory; import javax.annotation.Nullable; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import appeng.container.AEBaseContainer; +import appeng.container.ContainerOpenContext; + +import com.glodblock.github.inventory.item.IItemInventory; + public abstract class ItemGuiFactory implements IGuiFactory { protected final Class invClass; diff --git a/src/main/java/com/glodblock/github/inventory/gui/MouseRegionManager.java b/src/main/java/com/glodblock/github/inventory/gui/MouseRegionManager.java index 125d95ff..7dd9f674 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/MouseRegionManager.java +++ b/src/main/java/com/glodblock/github/inventory/gui/MouseRegionManager.java @@ -1,14 +1,18 @@ package com.glodblock.github.inventory.gui; -import appeng.client.gui.AEBaseGui; import java.util.ArrayList; import java.util.List; + import javax.annotation.Nullable; + import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.util.ResourceLocation; +import appeng.client.gui.AEBaseGui; + public class MouseRegionManager { + private final GuiContainer gui; private final List regions = new ArrayList<>(); @@ -25,8 +29,7 @@ public class MouseRegionManager { mY -= gui.guiTop; for (Region region : regions) { if (region.containsMouse(mX, mY) && region.handler.onClick(button)) { - gui.mc - .getSoundHandler() + gui.mc.getSoundHandler() .playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1F)); return false; } diff --git a/src/main/java/com/glodblock/github/inventory/gui/PartGuiFactory.java b/src/main/java/com/glodblock/github/inventory/gui/PartGuiFactory.java index 335f58ef..d2a7508d 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/PartGuiFactory.java +++ b/src/main/java/com/glodblock/github/inventory/gui/PartGuiFactory.java @@ -1,10 +1,12 @@ package com.glodblock.github.inventory.gui; +import javax.annotation.Nullable; + +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.api.parts.IPart; import appeng.api.parts.IPartHost; -import javax.annotation.Nullable; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; public abstract class PartGuiFactory extends TileGuiFactory { diff --git a/src/main/java/com/glodblock/github/inventory/gui/TankMouseHandler.java b/src/main/java/com/glodblock/github/inventory/gui/TankMouseHandler.java index fceb6b29..b8b61c60 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/TankMouseHandler.java +++ b/src/main/java/com/glodblock/github/inventory/gui/TankMouseHandler.java @@ -1,15 +1,19 @@ package com.glodblock.github.inventory.gui; -import appeng.api.storage.data.IAEFluidStack; -import com.glodblock.github.inventory.IAEFluidTank; -import com.glodblock.github.util.NameConst; import java.util.Arrays; import java.util.List; + import javax.annotation.Nullable; + import net.minecraft.client.resources.I18n; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; +import appeng.api.storage.data.IAEFluidStack; + +import com.glodblock.github.inventory.IAEFluidTank; +import com.glodblock.github.util.NameConst; + public class TankMouseHandler implements MouseRegionManager.Handler { private final IAEFluidTank tank; @@ -26,10 +30,9 @@ public class TankMouseHandler implements MouseRegionManager.Handler { IAEFluidStack fluid = tank.getFluidInSlot(index); return Arrays.asList( fluid != null ? fluid.getFluidStack().getLocalizedName() : I18n.format(NameConst.TT_EMPTY), - EnumChatFormatting.GRAY - + String.format( - "%,d / %,d mB", - fluid != null ? fluid.getStackSize() : 0L, - tank.getTankInfo(ForgeDirection.UNKNOWN)[index].capacity)); + EnumChatFormatting.GRAY + String.format( + "%,d / %,d mB", + fluid != null ? fluid.getStackSize() : 0L, + tank.getTankInfo(ForgeDirection.UNKNOWN)[index].capacity)); } } diff --git a/src/main/java/com/glodblock/github/inventory/gui/TileGuiFactory.java b/src/main/java/com/glodblock/github/inventory/gui/TileGuiFactory.java index df373940..abbbde34 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/TileGuiFactory.java +++ b/src/main/java/com/glodblock/github/inventory/gui/TileGuiFactory.java @@ -1,13 +1,15 @@ package com.glodblock.github.inventory.gui; -import appeng.container.AEBaseContainer; -import appeng.container.ContainerOpenContext; import javax.annotation.Nullable; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import appeng.container.AEBaseContainer; +import appeng.container.ContainerOpenContext; + public abstract class TileGuiFactory implements IGuiFactory { protected final Class invClass; diff --git a/src/main/java/com/glodblock/github/inventory/gui/TileOrPartGuiFactory.java b/src/main/java/com/glodblock/github/inventory/gui/TileOrPartGuiFactory.java index f0664a05..a3d4b35a 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/TileOrPartGuiFactory.java +++ b/src/main/java/com/glodblock/github/inventory/gui/TileOrPartGuiFactory.java @@ -1,10 +1,12 @@ package com.glodblock.github.inventory.gui; +import javax.annotation.Nullable; + +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.api.parts.IPart; import appeng.api.parts.IPartHost; -import javax.annotation.Nullable; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; public abstract class TileOrPartGuiFactory extends TileGuiFactory { diff --git a/src/main/java/com/glodblock/github/inventory/item/IFluidPortableCell.java b/src/main/java/com/glodblock/github/inventory/item/IFluidPortableCell.java index df1f395f..3058ccc9 100644 --- a/src/main/java/com/glodblock/github/inventory/item/IFluidPortableCell.java +++ b/src/main/java/com/glodblock/github/inventory/item/IFluidPortableCell.java @@ -5,4 +5,5 @@ import appeng.api.networking.energy.IEnergySource; import appeng.api.storage.ITerminalHost; import appeng.container.interfaces.IInventorySlotAware; -public interface IFluidPortableCell extends ITerminalHost, IInventorySlotAware, IEnergySource, IGuiItemObject {} +public interface IFluidPortableCell extends ITerminalHost, IInventorySlotAware, IEnergySource, IGuiItemObject { +} diff --git a/src/main/java/com/glodblock/github/inventory/item/PortableFluidCellInventory.java b/src/main/java/com/glodblock/github/inventory/item/PortableFluidCellInventory.java index b3150d0f..e11f328b 100644 --- a/src/main/java/com/glodblock/github/inventory/item/PortableFluidCellInventory.java +++ b/src/main/java/com/glodblock/github/inventory/item/PortableFluidCellInventory.java @@ -1,5 +1,10 @@ package com.glodblock.github.inventory.item; +import java.util.Objects; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + import appeng.api.config.*; import appeng.api.implementations.items.IAEItemPowerStorage; import appeng.api.storage.IMEMonitor; @@ -9,10 +14,8 @@ import appeng.api.storage.data.IAEItemStack; import appeng.api.util.IConfigManager; import appeng.util.ConfigManager; import appeng.util.Platform; + import com.glodblock.github.common.storage.FluidCellInventory; -import java.util.Objects; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; public class PortableFluidCellInventory extends MEMonitorHandler implements IFluidPortableCell { diff --git a/src/main/java/com/glodblock/github/inventory/slot/FCSlotRestrictedInput.java b/src/main/java/com/glodblock/github/inventory/slot/FCSlotRestrictedInput.java index 26c066dd..9797cb19 100644 --- a/src/main/java/com/glodblock/github/inventory/slot/FCSlotRestrictedInput.java +++ b/src/main/java/com/glodblock/github/inventory/slot/FCSlotRestrictedInput.java @@ -1,11 +1,13 @@ package com.glodblock.github.inventory.slot; -import appeng.container.slot.SlotRestrictedInput; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import appeng.container.slot.SlotRestrictedInput; + public class FCSlotRestrictedInput extends SlotRestrictedInput { + private ItemStack valid; public FCSlotRestrictedInput(ItemStack valid, IInventory i, int slotIndex, int x, int y, InventoryPlayer p) { diff --git a/src/main/java/com/glodblock/github/inventory/slot/ISlotFluid.java b/src/main/java/com/glodblock/github/inventory/slot/ISlotFluid.java index 115180bb..e985f401 100644 --- a/src/main/java/com/glodblock/github/inventory/slot/ISlotFluid.java +++ b/src/main/java/com/glodblock/github/inventory/slot/ISlotFluid.java @@ -1,8 +1,9 @@ package com.glodblock.github.inventory.slot; -import appeng.api.storage.data.IAEItemStack; import javax.annotation.Nullable; +import appeng.api.storage.data.IAEItemStack; + public interface ISlotFluid { @Nullable diff --git a/src/main/java/com/glodblock/github/inventory/slot/OptionalFluidSlotFakeTypeOnly.java b/src/main/java/com/glodblock/github/inventory/slot/OptionalFluidSlotFakeTypeOnly.java index c1e1d74b..3a4e99d3 100644 --- a/src/main/java/com/glodblock/github/inventory/slot/OptionalFluidSlotFakeTypeOnly.java +++ b/src/main/java/com/glodblock/github/inventory/slot/OptionalFluidSlotFakeTypeOnly.java @@ -1,29 +1,23 @@ package com.glodblock.github.inventory.slot; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + import appeng.container.slot.IOptionalSlotHost; import appeng.container.slot.OptionalSlotFakeTypeOnly; import appeng.util.item.AEFluidStack; + import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.AEFluidInventory; import com.glodblock.github.util.Util; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; public class OptionalFluidSlotFakeTypeOnly extends OptionalSlotFakeTypeOnly { AEFluidInventory fluidInv; - public OptionalFluidSlotFakeTypeOnly( - IInventory inv, - AEFluidInventory fluidInv, - IOptionalSlotHost containerBus, - int idx, - int x, - int y, - int offX, - int offY, - int groupNum) { + public OptionalFluidSlotFakeTypeOnly(IInventory inv, AEFluidInventory fluidInv, IOptionalSlotHost containerBus, + int idx, int x, int y, int offX, int offY, int groupNum) { super(inv, containerBus, idx, x, y, offX, offY, groupNum); this.fluidInv = fluidInv; } diff --git a/src/main/java/com/glodblock/github/inventory/slot/SlotFluidConvertingFake.java b/src/main/java/com/glodblock/github/inventory/slot/SlotFluidConvertingFake.java index abb8a42f..5f6371fa 100644 --- a/src/main/java/com/glodblock/github/inventory/slot/SlotFluidConvertingFake.java +++ b/src/main/java/com/glodblock/github/inventory/slot/SlotFluidConvertingFake.java @@ -1,17 +1,20 @@ package com.glodblock.github.inventory.slot; -import appeng.api.storage.data.IAEItemStack; -import appeng.container.slot.SlotFake; -import appeng.util.item.AEItemStack; -import com.glodblock.github.common.item.ItemFluidPacket; -import com.glodblock.github.inventory.AeItemStackHandler; -import com.glodblock.github.inventory.AeStackInventory; import javax.annotation.Nullable; + import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidContainerItem; +import appeng.api.storage.data.IAEItemStack; +import appeng.container.slot.SlotFake; +import appeng.util.item.AEItemStack; + +import com.glodblock.github.common.item.ItemFluidPacket; +import com.glodblock.github.inventory.AeItemStackHandler; +import com.glodblock.github.inventory.AeStackInventory; + public class SlotFluidConvertingFake extends SlotFake implements ISlotFluid { private final AeStackInventory inv; diff --git a/src/main/java/com/glodblock/github/inventory/slot/SlotSingleItem.java b/src/main/java/com/glodblock/github/inventory/slot/SlotSingleItem.java index b3b65890..f7ee976e 100644 --- a/src/main/java/com/glodblock/github/inventory/slot/SlotSingleItem.java +++ b/src/main/java/com/glodblock/github/inventory/slot/SlotSingleItem.java @@ -1,14 +1,16 @@ package com.glodblock.github.inventory.slot; -import com.glodblock.github.util.Util; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; +import com.glodblock.github.util.Util; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class SlotSingleItem extends Slot { private final Slot delegate; diff --git a/src/main/java/com/glodblock/github/loader/CalculatorV2PluginLoader.java b/src/main/java/com/glodblock/github/loader/CalculatorV2PluginLoader.java index b388512c..08deb888 100644 --- a/src/main/java/com/glodblock/github/loader/CalculatorV2PluginLoader.java +++ b/src/main/java/com/glodblock/github/loader/CalculatorV2PluginLoader.java @@ -4,9 +4,11 @@ import appeng.api.storage.data.IAEItemStack; import appeng.crafting.v2.CraftingCalculations; import appeng.crafting.v2.CraftingRequest; import appeng.util.Platform; + import com.glodblock.github.common.item.ItemFluidDrop; public class CalculatorV2PluginLoader { + private static long adjustByteCost(CraftingRequest request, Long originalAmount) { if (request.stack.getItem() instanceof ItemFluidDrop) { return Platform.ceilDiv(originalAmount, 1000L); diff --git a/src/main/java/com/glodblock/github/loader/ChannelLoader.java b/src/main/java/com/glodblock/github/loader/ChannelLoader.java index a8a7f2d2..1ecdaa0a 100644 --- a/src/main/java/com/glodblock/github/loader/ChannelLoader.java +++ b/src/main/java/com/glodblock/github/loader/ChannelLoader.java @@ -5,39 +5,46 @@ import com.glodblock.github.network.*; import cpw.mods.fml.relauncher.Side; public class ChannelLoader implements Runnable { + @Override @SuppressWarnings("all") public void run() { int id = 0; + FluidCraft.proxy.netHandler + .registerMessage(new CPacketSwitchGuis.Handler(), CPacketSwitchGuis.class, id++, Side.SERVER); FluidCraft.proxy.netHandler.registerMessage( - new CPacketSwitchGuis.Handler(), CPacketSwitchGuis.class, id++, Side.SERVER); + new CPacketFluidPatternTermBtns.Handler(), + CPacketFluidPatternTermBtns.class, + id++, + Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketEncodePattern.Handler(), CPacketEncodePattern.class, id++, Side.SERVER); FluidCraft.proxy.netHandler.registerMessage( - new CPacketFluidPatternTermBtns.Handler(), CPacketFluidPatternTermBtns.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketEncodePattern.Handler(), CPacketEncodePattern.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new SPacketMEInventoryUpdate.Handler(), SPacketMEInventoryUpdate.class, id++, Side.CLIENT); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketCraftRequest.Handler(), CPacketCraftRequest.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketInventoryAction.Handler(), CPacketInventoryAction.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketSwitchGuis.Handler(), CPacketSwitchGuis.class, id++, Side.CLIENT); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketTransferRecipe.Handler(), CPacketTransferRecipe.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketDumpTank.Handler(), CPacketDumpTank.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new SPacketFluidUpdate.Handler(), SPacketFluidUpdate.class, id++, Side.CLIENT); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketPatternValueSet.Handler(), CPacketPatternValueSet.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketValueConfig.Handler(), CPacketValueConfig.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketFluidUpdate.Handler(), CPacketFluidUpdate.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketLevelMaintainer.Handler(), CPacketLevelMaintainer.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new SPacketSetItemAmount.Handler(), SPacketSetItemAmount.class, id++, Side.CLIENT); + new SPacketMEInventoryUpdate.Handler(), + SPacketMEInventoryUpdate.class, + id++, + Side.CLIENT); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketCraftRequest.Handler(), CPacketCraftRequest.class, id++, Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketInventoryAction.Handler(), CPacketInventoryAction.class, id++, Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketSwitchGuis.Handler(), CPacketSwitchGuis.class, id++, Side.CLIENT); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketTransferRecipe.Handler(), CPacketTransferRecipe.class, id++, Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketDumpTank.Handler(), CPacketDumpTank.class, id++, Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new SPacketFluidUpdate.Handler(), SPacketFluidUpdate.class, id++, Side.CLIENT); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketPatternValueSet.Handler(), CPacketPatternValueSet.class, id++, Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketValueConfig.Handler(), CPacketValueConfig.class, id++, Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketFluidUpdate.Handler(), CPacketFluidUpdate.class, id++, Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketLevelMaintainer.Handler(), CPacketLevelMaintainer.class, id++, Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new SPacketSetItemAmount.Handler(), SPacketSetItemAmount.class, id++, Side.CLIENT); } } diff --git a/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java b/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java index 602874d2..1b4840dc 100644 --- a/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java +++ b/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java @@ -33,18 +33,18 @@ public class ItemAndBlockHolder { public static ItemFluidPacket PACKET = new ItemFluidPacket().register(); public static ItemBasicFluidStorageCell CELL1K = new ItemBasicFluidStorageCell(CellType.Cell1kPart, 1).register(); public static ItemBasicFluidStorageCell CELL4K = new ItemBasicFluidStorageCell(CellType.Cell4kPart, 4).register(); - public static ItemBasicFluidStorageCell CELL16K = - new ItemBasicFluidStorageCell(CellType.Cell16kPart, 16).register(); - public static ItemBasicFluidStorageCell CELL64K = - new ItemBasicFluidStorageCell(CellType.Cell64kPart, 64).register(); - public static ItemBasicFluidStorageCell CELL256K = - new ItemBasicFluidStorageCell(CellType.Cell256kPart, 256).register(); - public static ItemBasicFluidStorageCell CELL1024K = - new ItemBasicFluidStorageCell(CellType.Cell1024kPart, 1024).register(); - public static ItemBasicFluidStorageCell CELL4096K = - new ItemBasicFluidStorageCell(CellType.Cell4096kPart, 4096).register(); - public static ItemBasicFluidStorageCell CELL16384K = - new ItemBasicFluidStorageCell(CellType.Cell16384kPart, 16384).register(); + public static ItemBasicFluidStorageCell CELL16K = new ItemBasicFluidStorageCell(CellType.Cell16kPart, 16) + .register(); + public static ItemBasicFluidStorageCell CELL64K = new ItemBasicFluidStorageCell(CellType.Cell64kPart, 64) + .register(); + public static ItemBasicFluidStorageCell CELL256K = new ItemBasicFluidStorageCell(CellType.Cell256kPart, 256) + .register(); + public static ItemBasicFluidStorageCell CELL1024K = new ItemBasicFluidStorageCell(CellType.Cell1024kPart, 1024) + .register(); + public static ItemBasicFluidStorageCell CELL4096K = new ItemBasicFluidStorageCell(CellType.Cell4096kPart, 4096) + .register(); + public static ItemBasicFluidStorageCell CELL16384K = new ItemBasicFluidStorageCell(CellType.Cell16384kPart, 16384) + .register(); public static ItemBasicFluidStoragePart CELL_PART = new ItemBasicFluidStoragePart().register(); public static void loadSetting() { diff --git a/src/main/java/com/glodblock/github/loader/RecipeLoader.java b/src/main/java/com/glodblock/github/loader/RecipeLoader.java index f23e4282..7b4b9fec 100644 --- a/src/main/java/com/glodblock/github/loader/RecipeLoader.java +++ b/src/main/java/com/glodblock/github/loader/RecipeLoader.java @@ -4,12 +4,6 @@ import static com.glodblock.github.loader.ItemAndBlockHolder.*; import static net.minecraft.init.Blocks.redstone_torch; import static net.minecraft.init.Items.fish; -import com.glodblock.github.common.Config; -import com.glodblock.github.common.item.ItemBasicFluidStorageCell; -import com.glodblock.github.common.storage.CellType; -import com.glodblock.github.util.ModAndClassUtil; -import cpw.mods.fml.common.registry.GameRegistry; -import extracells.registries.ItemEnum; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -17,343 +11,432 @@ import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; +import com.glodblock.github.common.Config; +import com.glodblock.github.common.item.ItemBasicFluidStorageCell; +import com.glodblock.github.common.storage.CellType; +import com.glodblock.github.util.ModAndClassUtil; + +import cpw.mods.fml.common.registry.GameRegistry; +import extracells.registries.ItemEnum; + public class RecipeLoader implements Runnable { - public static final ItemStack AE2_INTERFACE = - GameRegistry.findItemStack("appliedenergistics2", "tile.BlockInterface", 1); - public static final ItemStack AE2_PROCESS_ENG = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 24); - public static final ItemStack AE2_STORAGE_BUS = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiPart"), 1, 220); - public static final ItemStack AE2_CONDENSER = - GameRegistry.findItemStack("appliedenergistics2", "tile.BlockCondenser", 1); - public static final ItemStack AE2_GLASS_CABLE = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiPart"), 1, 16); - public static final ItemStack AE2_PROCESS_CAL = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 23); - public static final ItemStack AE2_WORK_BENCH = - GameRegistry.findItemStack("appliedenergistics2", "tile.BlockCellWorkbench", 1); - public static final ItemStack AE2_PATTERN_TERM = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiPart"), 1, 340); - public static final ItemStack AE2_PROCESS_LOG = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 22); - public static final ItemStack AE2_PURE_CERTUS = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 10); - public static final ItemStack AE2_QUARTZ_GLASS = - GameRegistry.findItemStack("appliedenergistics2", "tile.BlockQuartzGlass", 1); - public static final ItemStack AE2_LAMP_GLASS = - GameRegistry.findItemStack("appliedenergistics2", "tile.BlockQuartzLamp", 1); - public static final ItemStack AE2_CELL_HOUSING = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 39); - public static final ItemStack AE2_CELL_1K = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 35); - public static final ItemStack AE2_CORE_ANN = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 44); - public static final ItemStack AE2_CORE_FOM = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 43); + public static final ItemStack AE2_INTERFACE = GameRegistry + .findItemStack("appliedenergistics2", "tile.BlockInterface", 1); + public static final ItemStack AE2_PROCESS_ENG = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 24); + public static final ItemStack AE2_STORAGE_BUS = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiPart"), + 1, + 220); + public static final ItemStack AE2_CONDENSER = GameRegistry + .findItemStack("appliedenergistics2", "tile.BlockCondenser", 1); + public static final ItemStack AE2_GLASS_CABLE = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiPart"), + 1, + 16); + public static final ItemStack AE2_PROCESS_CAL = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 23); + public static final ItemStack AE2_WORK_BENCH = GameRegistry + .findItemStack("appliedenergistics2", "tile.BlockCellWorkbench", 1); + public static final ItemStack AE2_PATTERN_TERM = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiPart"), + 1, + 340); + public static final ItemStack AE2_PROCESS_LOG = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 22); + public static final ItemStack AE2_PURE_CERTUS = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 10); + public static final ItemStack AE2_QUARTZ_GLASS = GameRegistry + .findItemStack("appliedenergistics2", "tile.BlockQuartzGlass", 1); + public static final ItemStack AE2_LAMP_GLASS = GameRegistry + .findItemStack("appliedenergistics2", "tile.BlockQuartzLamp", 1); + public static final ItemStack AE2_CELL_HOUSING = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 39); + public static final ItemStack AE2_CELL_1K = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 35); + public static final ItemStack AE2_CORE_ANN = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 44); + public static final ItemStack AE2_CORE_FOM = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 43); public static final ItemStack PISTON = new ItemStack(Blocks.piston, 1); public static final ItemStack STICKY_PISTON = new ItemStack(Blocks.sticky_piston, 1); - public static final ItemStack AE2_BLANK_PATTERN = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 52); - public static final ItemStack AE2_TERMINAL = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiPart"), 1, 380); - public static final ItemStack AE2_CRAFTING_CP_UNIT = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "tile.BlockCraftingUnit"), 1, 1); - public static final ItemStack AE2_PATTERN_CAPACITY_CARD = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 54); - public static final ItemStack AE2_ME_CHEST = - GameRegistry.findItemStack("appliedenergistics2", "tile.BlockChest", 1); - public static final ItemStack AE2_ENERGY_CELL = - GameRegistry.findItemStack("appliedenergistics2", "tile.BlockEnergyCell", 1); + public static final ItemStack AE2_BLANK_PATTERN = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 52); + public static final ItemStack AE2_TERMINAL = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiPart"), + 1, + 380); + public static final ItemStack AE2_CRAFTING_CP_UNIT = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "tile.BlockCraftingUnit"), + 1, + 1); + public static final ItemStack AE2_PATTERN_CAPACITY_CARD = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 54); + public static final ItemStack AE2_ME_CHEST = GameRegistry + .findItemStack("appliedenergistics2", "tile.BlockChest", 1); + public static final ItemStack AE2_ENERGY_CELL = GameRegistry + .findItemStack("appliedenergistics2", "tile.BlockEnergyCell", 1); public static final ItemStack BUCKET = new ItemStack(Items.bucket, 1); public static final ItemStack IRON_BAR = new ItemStack(Blocks.iron_bars, 1); @Override public void run() { - GameRegistry.addRecipe(new ShapedOreRecipe( - PORTABLE_FLUID_CELL.stack(), - "ABC", - 'A', - AE2_ME_CHEST, - 'B', - CellType.Cell1kPart.stack(1), - 'C', - AE2_ENERGY_CELL)); - GameRegistry.addRecipe(new ShapedOreRecipe( - INTERFACE.stack(), - "IPI", - "GEG", - "IPI", - 'I', - "ingotIron", - 'P', - "dyeBlue", - 'G', - "blockGlass", - 'E', - AE2_INTERFACE)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + PORTABLE_FLUID_CELL.stack(), + "ABC", + 'A', + AE2_ME_CHEST, + 'B', + CellType.Cell1kPart.stack(1), + 'C', + AE2_ENERGY_CELL)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + INTERFACE.stack(), + "IPI", + "GEG", + "IPI", + 'I', + "ingotIron", + 'P', + "dyeBlue", + 'G', + "blockGlass", + 'E', + AE2_INTERFACE)); GameRegistry.addShapelessRecipe(FLUID_INTERFACE.stack(), INTERFACE.stack()); GameRegistry.addShapelessRecipe(INTERFACE.stack(), FLUID_INTERFACE.stack()); - GameRegistry.addRecipe(new ShapedOreRecipe( - DISCRETIZER.stack(), - "IPI", - "TMT", - "IPI", - 'I', - "ingotIron", - 'P', - AE2_PROCESS_ENG, - 'T', - AE2_STORAGE_BUS, - 'M', - AE2_CONDENSER)); - GameRegistry.addRecipe(new ShapedOreRecipe( - DECODER.stack(), - "IHI", - "CFC", - "IPI", - 'I', - "ingotIron", - 'H', - Blocks.hopper, - 'C', - AE2_GLASS_CABLE, - 'F', - INTERFACE, - 'P', - AE2_PROCESS_CAL)); - GameRegistry.addRecipe(new ShapedOreRecipe( - ENCODER.stack(), - "LPL", - "IWI", - "III", - 'I', - "ingotIron", - 'L', - "blockLapis", - 'P', - AE2_PROCESS_ENG, - 'W', - AE2_WORK_BENCH)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + DISCRETIZER.stack(), + "IPI", + "TMT", + "IPI", + 'I', + "ingotIron", + 'P', + AE2_PROCESS_ENG, + 'T', + AE2_STORAGE_BUS, + 'M', + AE2_CONDENSER)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + DECODER.stack(), + "IHI", + "CFC", + "IPI", + 'I', + "ingotIron", + 'H', + Blocks.hopper, + 'C', + AE2_GLASS_CABLE, + 'F', + INTERFACE, + 'P', + AE2_PROCESS_CAL)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + ENCODER.stack(), + "LPL", + "IWI", + "III", + 'I', + "ingotIron", + 'L', + "blockLapis", + 'P', + AE2_PROCESS_ENG, + 'W', + AE2_WORK_BENCH)); GameRegistry.addShapelessRecipe(FLUID_STORAGE_BUS.stack(), FLUID_INTERFACE, STICKY_PISTON, PISTON); GameRegistry.addShapelessRecipe(FLUID_STORAGE_BUS.stack(), INTERFACE, STICKY_PISTON, PISTON); - GameRegistry.addRecipe(new ShapedOreRecipe( - FLUID_STORAGE_MONITOR.stack(), - "EIP", - "P ", - 'I', - "itemIlluminatedPanel", - 'E', - FLUID_LEVEL_EMITTER, - 'P', - "dyeBlue")); - GameRegistry.addRecipe(new ShapedOreRecipe( - FLUID_CONVERSION_MONITOR.stack(), - "ASF", - 'A', - AE2_CORE_ANN, - 'S', - FLUID_STORAGE_MONITOR, - 'F', - AE2_CORE_FOM)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + FLUID_STORAGE_MONITOR.stack(), + "EIP", + "P ", + 'I', + "itemIlluminatedPanel", + 'E', + FLUID_LEVEL_EMITTER, + 'P', + "dyeBlue")); + GameRegistry.addRecipe( + new ShapedOreRecipe( + FLUID_CONVERSION_MONITOR.stack(), + "ASF", + 'A', + AE2_CORE_ANN, + 'S', + FLUID_STORAGE_MONITOR, + 'F', + AE2_CORE_FOM)); GameRegistry.addShapelessRecipe(FLUID_TERMINAL.stack(), AE2_PATTERN_TERM, ENCODER); GameRegistry.addShapelessRecipe( - FLUID_TERMINAL_EX.stack(), FLUID_TERMINAL.stack(), AE2_PROCESS_CAL, AE2_PROCESS_ENG, AE2_PROCESS_LOG); - GameRegistry.addRecipe(new ShapedOreRecipe( - BUFFER.stack(), - "ILI", - "AGF", - "IBI", - 'I', - "ingotIron", - 'G', - AE2_QUARTZ_GLASS, - 'L', - AE2_CELL_1K, - 'A', - AE2_CORE_ANN, - 'F', - AE2_CORE_FOM, - 'B', - BUCKET)); + FLUID_TERMINAL_EX.stack(), + FLUID_TERMINAL.stack(), + AE2_PROCESS_CAL, + AE2_PROCESS_ENG, + AE2_PROCESS_LOG); + GameRegistry.addRecipe( + new ShapedOreRecipe( + BUFFER.stack(), + "ILI", + "AGF", + "IBI", + 'I', + "ingotIron", + 'G', + AE2_QUARTZ_GLASS, + 'L', + AE2_CELL_1K, + 'A', + AE2_CORE_ANN, + 'F', + AE2_CORE_FOM, + 'B', + BUCKET)); GameRegistry.addRecipe(new ShapedOreRecipe(WALRUS, "FFF", "F F", "FFF", 'F', fish)); - GameRegistry.addRecipe(new ShapedOreRecipe( - FLUID_LEVEL_EMITTER.stack(), "RPD", 'R', redstone_torch, 'P', AE2_PROCESS_CAL, 'D', "dyeBlue")); - GameRegistry.addRecipe(new ShapedOreRecipe( - LARGE_BUFFER.stack(), - "BGB", - "GEG", - "BGB", - 'B', - BUFFER.stack(), - 'G', - AE2_QUARTZ_GLASS, - 'E', - AE2_PROCESS_ENG)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + FLUID_LEVEL_EMITTER.stack(), + "RPD", + 'R', + redstone_torch, + 'P', + AE2_PROCESS_CAL, + 'D', + "dyeBlue")); + GameRegistry.addRecipe( + new ShapedOreRecipe( + LARGE_BUFFER.stack(), + "BGB", + "GEG", + "BGB", + 'B', + BUFFER.stack(), + 'G', + AE2_QUARTZ_GLASS, + 'E', + AE2_PROCESS_ENG)); GameRegistry.addShapelessRecipe(AE2_BLANK_PATTERN, PATTERN.stack()); GameRegistry.addShapelessRecipe(FLUID_TERM.stack(), AE2_TERMINAL, BUFFER); GameRegistry.addShapelessRecipe( FLUID_BUFFER.stack(), LARGE_BUFFER.stack(), - Config.fluidCells - ? CELL1K.getComponent() + Config.fluidCells ? CELL1K.getComponent() : ModAndClassUtil.EC2 ? ItemEnum.STORAGECOMPONENT.getDamagedStack(4) : null); - GameRegistry.addShapelessRecipe( - LEVEL_MAINTAINER.stack(), AE2_CRAFTING_CP_UNIT, ENCODER, AE2_PATTERN_CAPACITY_CARD); + GameRegistry + .addShapelessRecipe(LEVEL_MAINTAINER.stack(), AE2_CRAFTING_CP_UNIT, ENCODER, AE2_PATTERN_CAPACITY_CARD); if (Config.fluidCells) { OreDictionary.registerOre("anyCertusCrystal", AE2_PURE_CERTUS); for (ItemStack it : OreDictionary.getOres("crystalCertusQuartz")) OreDictionary.registerOre("anyCertusCrystal", it); - GameRegistry.addRecipe(new ShapedOreRecipe( - CellType.Cell1kPart.stack(1), - "DCD", - "CEC", - "DCD", - 'D', - "dyeRed", - 'C', - "anyCertusCrystal", - 'E', - AE2_PROCESS_ENG)); - GameRegistry.addRecipe(new ShapedOreRecipe( - CellType.Cell4kPart.stack(1), - "DPD", - "CGC", - "DCD", - 'D', - "dyeRed", - 'C', - CellType.Cell1kPart.stack(1), - 'P', - AE2_PROCESS_CAL, - 'G', - AE2_QUARTZ_GLASS)); - GameRegistry.addRecipe(new ShapedOreRecipe( - CellType.Cell16kPart.stack(1), - "DPD", - "CGC", - "DCD", - 'D', - "dyeRed", - 'C', - CellType.Cell4kPart.stack(1), - 'P', - AE2_PROCESS_LOG, - 'G', - AE2_QUARTZ_GLASS)); - GameRegistry.addRecipe(new ShapedOreRecipe( - CellType.Cell64kPart.stack(1), - "DPD", - "CGC", - "DCD", - 'D', - "dyeRed", - 'C', - CellType.Cell16kPart.stack(1), - 'P', - AE2_PROCESS_ENG, - 'G', - AE2_QUARTZ_GLASS)); - GameRegistry.addRecipe(new ShapedOreRecipe( - CellType.Cell256kPart.stack(1), - "DPD", - "CGC", - "DCD", - 'D', - "dyeRed", - 'C', - CellType.Cell64kPart.stack(1), - 'P', - AE2_PROCESS_CAL, - 'G', - AE2_LAMP_GLASS)); - GameRegistry.addRecipe(new ShapedOreRecipe( - CellType.Cell1024kPart.stack(1), - "DPD", - "CGC", - "DCD", - 'D', - "dyeRed", - 'C', - CellType.Cell256kPart.stack(1), - 'P', - AE2_PROCESS_LOG, - 'G', - AE2_LAMP_GLASS)); - GameRegistry.addRecipe(new ShapedOreRecipe( - CellType.Cell4096kPart.stack(1), - "DPD", - "CGC", - "DCD", - 'D', - "dyeRed", - 'C', - CellType.Cell1024kPart.stack(1), - 'P', - AE2_PROCESS_CAL, - 'G', - AE2_LAMP_GLASS)); - GameRegistry.addRecipe(new ShapedOreRecipe( - CellType.Cell16384kPart.stack(1), - "DPD", - "CGC", - "DCD", - 'D', - "dyeRed", - 'C', - CellType.Cell4096kPart.stack(1), - 'P', - AE2_PROCESS_ENG, - 'G', - AE2_LAMP_GLASS)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + CellType.Cell1kPart.stack(1), + "DCD", + "CEC", + "DCD", + 'D', + "dyeRed", + 'C', + "anyCertusCrystal", + 'E', + AE2_PROCESS_ENG)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + CellType.Cell4kPart.stack(1), + "DPD", + "CGC", + "DCD", + 'D', + "dyeRed", + 'C', + CellType.Cell1kPart.stack(1), + 'P', + AE2_PROCESS_CAL, + 'G', + AE2_QUARTZ_GLASS)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + CellType.Cell16kPart.stack(1), + "DPD", + "CGC", + "DCD", + 'D', + "dyeRed", + 'C', + CellType.Cell4kPart.stack(1), + 'P', + AE2_PROCESS_LOG, + 'G', + AE2_QUARTZ_GLASS)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + CellType.Cell64kPart.stack(1), + "DPD", + "CGC", + "DCD", + 'D', + "dyeRed", + 'C', + CellType.Cell16kPart.stack(1), + 'P', + AE2_PROCESS_ENG, + 'G', + AE2_QUARTZ_GLASS)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + CellType.Cell256kPart.stack(1), + "DPD", + "CGC", + "DCD", + 'D', + "dyeRed", + 'C', + CellType.Cell64kPart.stack(1), + 'P', + AE2_PROCESS_CAL, + 'G', + AE2_LAMP_GLASS)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + CellType.Cell1024kPart.stack(1), + "DPD", + "CGC", + "DCD", + 'D', + "dyeRed", + 'C', + CellType.Cell256kPart.stack(1), + 'P', + AE2_PROCESS_LOG, + 'G', + AE2_LAMP_GLASS)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + CellType.Cell4096kPart.stack(1), + "DPD", + "CGC", + "DCD", + 'D', + "dyeRed", + 'C', + CellType.Cell1024kPart.stack(1), + 'P', + AE2_PROCESS_CAL, + 'G', + AE2_LAMP_GLASS)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + CellType.Cell16384kPart.stack(1), + "DPD", + "CGC", + "DCD", + 'D', + "dyeRed", + 'C', + CellType.Cell4096kPart.stack(1), + 'P', + AE2_PROCESS_ENG, + 'G', + AE2_LAMP_GLASS)); - ItemBasicFluidStorageCell[] cells = new ItemBasicFluidStorageCell[] { - CELL1K, CELL4K, CELL16K, CELL64K, CELL256K, CELL1024K, CELL4096K, CELL16384K - }; + ItemBasicFluidStorageCell[] cells = new ItemBasicFluidStorageCell[] { CELL1K, CELL4K, CELL16K, CELL64K, + CELL256K, CELL1024K, CELL4096K, CELL16384K }; for (ItemBasicFluidStorageCell cell : cells) { - GameRegistry.addRecipe(new ShapedOreRecipe( - cell, - "GDG", - "DCD", - "III", - 'D', - "dustRedstone", - 'G', - AE2_QUARTZ_GLASS, - 'C', - cell.getComponent(), - 'I', - "ingotIron")); + GameRegistry.addRecipe( + new ShapedOreRecipe( + cell, + "GDG", + "DCD", + "III", + 'D', + "dustRedstone", + 'G', + AE2_QUARTZ_GLASS, + 'C', + cell.getComponent(), + 'I', + "ingotIron")); GameRegistry.addRecipe(new ShapelessOreRecipe(cell, AE2_CELL_HOUSING, cell.getComponent())); } } if (Config.fluidIOBus) { - GameRegistry.addRecipe(new ShapedOreRecipe( - FLUID_EXPORT_BUS, "ICI", "BPB", 'B', "dyeBlue", 'I', "ingotIron", 'P', PISTON, 'C', AE2_CORE_FOM)); - GameRegistry.addRecipe(new ShapedOreRecipe( - FLUID_IMPORT_BUS, "BCB", "IPI", 'B', "dyeBlue", 'I', "ingotIron", 'P', PISTON, 'C', AE2_CORE_ANN)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + FLUID_EXPORT_BUS, + "ICI", + "BPB", + 'B', + "dyeBlue", + 'I', + "ingotIron", + 'P', + PISTON, + 'C', + AE2_CORE_FOM)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + FLUID_IMPORT_BUS, + "BCB", + "IPI", + 'B', + "dyeBlue", + 'I', + "ingotIron", + 'P', + PISTON, + 'C', + AE2_CORE_ANN)); } if (ModAndClassUtil.OC) { ItemStack CHIP_T1 = new ItemStack(GameRegistry.findItem("OpenComputers", "item"), 1, 24); - GameRegistry.addRecipe(new ShapedOreRecipe( - OC_EDITOR, - "IMI", - "CBC", - "IPI", - 'I', - IRON_BAR, - 'M', - CHIP_T1, - 'C', - "oc:cable", - 'B', - BUCKET, - 'P', - AE2_BLANK_PATTERN)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + OC_EDITOR, + "IMI", + "CBC", + "IPI", + 'I', + IRON_BAR, + 'M', + CHIP_T1, + 'C', + "oc:cable", + 'B', + BUCKET, + 'P', + AE2_BLANK_PATTERN)); } } } diff --git a/src/main/java/com/glodblock/github/nei/FluidPatternTerminalRecipeTransferHandler.java b/src/main/java/com/glodblock/github/nei/FluidPatternTerminalRecipeTransferHandler.java index 5ea3fab6..b3d8662e 100644 --- a/src/main/java/com/glodblock/github/nei/FluidPatternTerminalRecipeTransferHandler.java +++ b/src/main/java/com/glodblock/github/nei/FluidPatternTerminalRecipeTransferHandler.java @@ -1,21 +1,23 @@ package com.glodblock.github.nei; +import java.util.HashSet; +import java.util.List; + +import net.minecraft.client.gui.inventory.GuiContainer; + import codechicken.nei.api.IOverlayHandler; import codechicken.nei.recipe.IRecipeHandler; import codechicken.nei.recipe.TemplateRecipeHandler; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.base.FCGuiEncodeTerminal; import com.glodblock.github.nei.object.OrderStack; import com.glodblock.github.nei.recipes.FluidRecipe; import com.glodblock.github.network.CPacketTransferRecipe; -import java.util.HashSet; -import java.util.List; -import net.minecraft.client.gui.inventory.GuiContainer; public class FluidPatternTerminalRecipeTransferHandler implements IOverlayHandler { - public static final FluidPatternTerminalRecipeTransferHandler INSTANCE = - new FluidPatternTerminalRecipeTransferHandler(); + public static final FluidPatternTerminalRecipeTransferHandler INSTANCE = new FluidPatternTerminalRecipeTransferHandler(); public static final HashSet notOtherSet = new HashSet<>(); public static final HashSet craftSet = new HashSet<>(); diff --git a/src/main/java/com/glodblock/github/nei/NEIGuiHandler.java b/src/main/java/com/glodblock/github/nei/NEIGuiHandler.java index 605ad1c6..c4ce6a83 100644 --- a/src/main/java/com/glodblock/github/nei/NEIGuiHandler.java +++ b/src/main/java/com/glodblock/github/nei/NEIGuiHandler.java @@ -1,9 +1,11 @@ package com.glodblock.github.nei; +import net.minecraft.client.gui.inventory.GuiContainer; + import codechicken.nei.api.INEIGuiAdapter; + import com.glodblock.github.client.gui.GuiFluidMonitor; import com.glodblock.github.client.gui.GuiItemMonitor; -import net.minecraft.client.gui.inventory.GuiContainer; public class NEIGuiHandler extends INEIGuiAdapter { diff --git a/src/main/java/com/glodblock/github/nei/NEIUtils.java b/src/main/java/com/glodblock/github/nei/NEIUtils.java index 52fe0db0..5044e451 100644 --- a/src/main/java/com/glodblock/github/nei/NEIUtils.java +++ b/src/main/java/com/glodblock/github/nei/NEIUtils.java @@ -1,14 +1,16 @@ package com.glodblock.github.nei; -import com.glodblock.github.nei.object.OrderStack; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; + import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; +import com.glodblock.github.nei.object.OrderStack; + public class NEIUtils { public static List> compress(List> list) { diff --git a/src/main/java/com/glodblock/github/nei/NEI_FC_Config.java b/src/main/java/com/glodblock/github/nei/NEI_FC_Config.java index eec4eb04..0f9c0358 100644 --- a/src/main/java/com/glodblock/github/nei/NEI_FC_Config.java +++ b/src/main/java/com/glodblock/github/nei/NEI_FC_Config.java @@ -2,6 +2,7 @@ package com.glodblock.github.nei; import codechicken.nei.api.API; import codechicken.nei.api.IConfigureNEI; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.GuiFluidPatternTerminal; import com.glodblock.github.client.gui.GuiFluidPatternTerminalEx; @@ -15,9 +16,13 @@ public class NEI_FC_Config implements IConfigureNEI { for (String identifier : FluidRecipe.getSupportRecipes()) { API.registerGuiOverlayHandler( - GuiFluidPatternTerminal.class, FluidPatternTerminalRecipeTransferHandler.INSTANCE, identifier); + GuiFluidPatternTerminal.class, + FluidPatternTerminalRecipeTransferHandler.INSTANCE, + identifier); API.registerGuiOverlayHandler( - GuiFluidPatternTerminalEx.class, FluidPatternTerminalRecipeTransferHandler.INSTANCE, identifier); + GuiFluidPatternTerminalEx.class, + FluidPatternTerminalRecipeTransferHandler.INSTANCE, + identifier); } } diff --git a/src/main/java/com/glodblock/github/nei/object/IRecipeExtractor.java b/src/main/java/com/glodblock/github/nei/object/IRecipeExtractor.java index 1ab41795..b6be1d31 100644 --- a/src/main/java/com/glodblock/github/nei/object/IRecipeExtractor.java +++ b/src/main/java/com/glodblock/github/nei/object/IRecipeExtractor.java @@ -1,8 +1,9 @@ package com.glodblock.github.nei.object; +import java.util.List; + import codechicken.nei.PositionedStack; import codechicken.nei.recipe.IRecipeHandler; -import java.util.List; public interface IRecipeExtractor { @@ -14,8 +15,8 @@ public interface IRecipeExtractor { return getInputIngredients(rawInputs); } - default List> getOutputIngredients( - List rawOutputs, IRecipeHandler recipe, int index) { + default List> getOutputIngredients(List rawOutputs, IRecipeHandler recipe, + int index) { return getOutputIngredients(rawOutputs); } } diff --git a/src/main/java/com/glodblock/github/nei/object/OrderStack.java b/src/main/java/com/glodblock/github/nei/object/OrderStack.java index 877b359d..c887a90d 100644 --- a/src/main/java/com/glodblock/github/nei/object/OrderStack.java +++ b/src/main/java/com/glodblock/github/nei/object/OrderStack.java @@ -1,14 +1,17 @@ package com.glodblock.github.nei.object; -import codechicken.nei.PositionedStack; -import com.glodblock.github.util.Util; import javax.annotation.Nullable; + import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; +import codechicken.nei.PositionedStack; + +import com.glodblock.github.util.Util; + public class OrderStack { private final T RealStack; diff --git a/src/main/java/com/glodblock/github/nei/recipes/DefaultExtractorLoader.java b/src/main/java/com/glodblock/github/nei/recipes/DefaultExtractorLoader.java index 20c1d246..7f7e0ea3 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/DefaultExtractorLoader.java +++ b/src/main/java/com/glodblock/github/nei/recipes/DefaultExtractorLoader.java @@ -2,6 +2,7 @@ package com.glodblock.github.nei.recipes; import com.glodblock.github.nei.recipes.extractor.*; import com.glodblock.github.util.ModAndClassUtil; + import forestry.factory.recipes.nei.*; import gregapi.recipes.Recipe; import gregtech.api.util.GTPP_Recipe; @@ -20,8 +21,9 @@ public class DefaultExtractorLoader implements Runnable { for (GT_Recipe.GT_Recipe_Map tMap : GT_Recipe.GT_Recipe_Map.sMappings) { FluidRecipe.addRecipeMap( tMap.mNEIName, - new GregTech5RecipeExtractor(tMap.mNEIName.equals("gt.recipe.scanner") - || tMap.mNEIName.equals("gt.recipe.fakeAssemblylineProcess"))); + new GregTech5RecipeExtractor( + tMap.mNEIName.equals("gt.recipe.scanner") + || tMap.mNEIName.equals("gt.recipe.fakeAssemblylineProcess"))); } } diff --git a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java index 76f6608a..e5c62371 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java +++ b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java @@ -1,18 +1,21 @@ package com.glodblock.github.nei.recipes; -import codechicken.nei.PositionedStack; -import codechicken.nei.recipe.IRecipeHandler; -import codechicken.nei.recipe.TemplateRecipeHandler; -import com.glodblock.github.nei.object.IRecipeExtractor; -import com.glodblock.github.nei.object.IRecipeExtractorLegacy; -import com.glodblock.github.nei.object.OrderStack; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; + import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; +import codechicken.nei.PositionedStack; +import codechicken.nei.recipe.IRecipeHandler; +import codechicken.nei.recipe.TemplateRecipeHandler; + +import com.glodblock.github.nei.object.IRecipeExtractor; +import com.glodblock.github.nei.object.IRecipeExtractorLegacy; +import com.glodblock.github.nei.object.OrderStack; + public final class FluidRecipe { private static final HashMap IdentifierMap = new HashMap<>(); diff --git a/src/main/java/com/glodblock/github/nei/recipes/extractor/EnderIORecipeExtractor.java b/src/main/java/com/glodblock/github/nei/recipes/extractor/EnderIORecipeExtractor.java index 98321be5..e25446da 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/extractor/EnderIORecipeExtractor.java +++ b/src/main/java/com/glodblock/github/nei/recipes/extractor/EnderIORecipeExtractor.java @@ -1,19 +1,23 @@ package com.glodblock.github.nei.recipes.extractor; -import codechicken.nei.PositionedStack; -import codechicken.nei.recipe.IRecipeHandler; -import codechicken.nei.recipe.TemplateRecipeHandler; -import com.glodblock.github.nei.object.IRecipeExtractor; -import com.glodblock.github.nei.object.OrderStack; -import com.glodblock.github.util.Ae2Reflect; -import crazypants.enderio.machine.crusher.CrusherRecipeManager; -import crazypants.enderio.nei.VatRecipeHandler; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; + import net.minecraftforge.fluids.FluidStack; +import codechicken.nei.PositionedStack; +import codechicken.nei.recipe.IRecipeHandler; +import codechicken.nei.recipe.TemplateRecipeHandler; + +import com.glodblock.github.nei.object.IRecipeExtractor; +import com.glodblock.github.nei.object.OrderStack; +import com.glodblock.github.util.Ae2Reflect; + +import crazypants.enderio.machine.crusher.CrusherRecipeManager; +import crazypants.enderio.nei.VatRecipeHandler; + public class EnderIORecipeExtractor implements IRecipeExtractor { public EnderIORecipeExtractor() {} @@ -56,8 +60,8 @@ public class EnderIORecipeExtractor implements IRecipeExtractor { } @Override - public List> getOutputIngredients( - List rawOutputs, IRecipeHandler recipe, int index) { + public List> getOutputIngredients(List rawOutputs, IRecipeHandler recipe, + int index) { TemplateRecipeHandler tRecipe = (TemplateRecipeHandler) recipe; List> tmp = new LinkedList<>(); if (tRecipe.arecipes.get(index) instanceof VatRecipeHandler.InnerVatRecipe) { diff --git a/src/main/java/com/glodblock/github/nei/recipes/extractor/ExtractorUtil.java b/src/main/java/com/glodblock/github/nei/recipes/extractor/ExtractorUtil.java index 3e4fed69..775dc866 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/extractor/ExtractorUtil.java +++ b/src/main/java/com/glodblock/github/nei/recipes/extractor/ExtractorUtil.java @@ -1,36 +1,32 @@ package com.glodblock.github.nei.recipes.extractor; -import codechicken.nei.PositionedStack; -import com.glodblock.github.nei.object.OrderStack; import java.util.List; import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Function; import java.util.stream.Collectors; +import codechicken.nei.PositionedStack; + +import com.glodblock.github.nei.object.OrderStack; + public final class ExtractorUtil { public static List> packItemStack(List items) { AtomicInteger index = new AtomicInteger(-1); - return items.stream() - .map(item -> { - index.getAndIncrement(); - return OrderStack.pack(item, index.get()); - }) - .filter(Objects::nonNull) - .collect(Collectors.toList()); + return items.stream().map(item -> { + index.getAndIncrement(); + return OrderStack.pack(item, index.get()); + }).filter(Objects::nonNull).collect(Collectors.toList()); } - public static List> packItemStack( - List items, Function transformer) { + public static List> packItemStack(List items, + Function transformer) { AtomicInteger index = new AtomicInteger(-1); - return items.stream() - .map(item -> { - index.getAndIncrement(); - Object o = transformer.apply(item); - return o != null ? new OrderStack<>(o, index.get()) : null; - }) - .filter(Objects::nonNull) - .collect(Collectors.toList()); + return items.stream().map(item -> { + index.getAndIncrement(); + Object o = transformer.apply(item); + return o != null ? new OrderStack<>(o, index.get()) : null; + }).filter(Objects::nonNull).collect(Collectors.toList()); } } diff --git a/src/main/java/com/glodblock/github/nei/recipes/extractor/ForestryRecipeExtractor.java b/src/main/java/com/glodblock/github/nei/recipes/extractor/ForestryRecipeExtractor.java index 311eef33..39754df8 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/extractor/ForestryRecipeExtractor.java +++ b/src/main/java/com/glodblock/github/nei/recipes/extractor/ForestryRecipeExtractor.java @@ -1,17 +1,21 @@ package com.glodblock.github.nei.recipes.extractor; +import java.util.ArrayList; +import java.util.List; + +import net.minecraftforge.fluids.FluidStack; + import codechicken.nei.PositionedStack; import codechicken.nei.recipe.IRecipeHandler; import codechicken.nei.recipe.TemplateRecipeHandler; + import com.glodblock.github.nei.object.IRecipeExtractorLegacy; import com.glodblock.github.nei.object.OrderStack; + import forestry.core.recipes.nei.PositionedFluidTank; import forestry.core.recipes.nei.RecipeHandlerBase; import forestry.factory.recipes.nei.NEIHandlerFabricator; import forestry.factory.recipes.nei.NEIHandlerSqueezer; -import java.util.ArrayList; -import java.util.List; -import net.minecraftforge.fluids.FluidStack; public class ForestryRecipeExtractor implements IRecipeExtractorLegacy { @@ -42,8 +46,8 @@ public class ForestryRecipeExtractor implements IRecipeExtractorLegacy { List> tmp = new ArrayList<>(); if (tRecipe.arecipes.get(index) instanceof RecipeHandlerBase.CachedBaseRecipe) { tmp = getInputIngredients(rawInputs); - List tanks = - ((RecipeHandlerBase.CachedBaseRecipe) tRecipe.arecipes.get(index)).getFluidTanks(); + List tanks = ((RecipeHandlerBase.CachedBaseRecipe) tRecipe.arecipes.get(index)) + .getFluidTanks(); if (tanks.size() > 0 && !(handler instanceof NEIHandlerSqueezer)) { FluidStack fluid = tanks.get(0).tank.getFluid(); if (fluid != null) { @@ -55,15 +59,15 @@ public class ForestryRecipeExtractor implements IRecipeExtractorLegacy { } @Override - public List> getOutputIngredients( - List rawOutputs, IRecipeHandler recipe, int index) { + public List> getOutputIngredients(List rawOutputs, IRecipeHandler recipe, + int index) { TemplateRecipeHandler tRecipe = (TemplateRecipeHandler) recipe; removeGlass(rawOutputs); List> tmp = new ArrayList<>(); if (tRecipe.arecipes.get(index) instanceof RecipeHandlerBase.CachedBaseRecipe) { tmp = getOutputIngredients(rawOutputs); - List tanks = - ((RecipeHandlerBase.CachedBaseRecipe) tRecipe.arecipes.get(index)).getFluidTanks(); + List tanks = ((RecipeHandlerBase.CachedBaseRecipe) tRecipe.arecipes.get(index)) + .getFluidTanks(); if (tanks.size() > 0 && handler instanceof NEIHandlerSqueezer) { FluidStack fluid = tanks.get(0).tank.getFluid(); if (fluid != null) { diff --git a/src/main/java/com/glodblock/github/nei/recipes/extractor/GregTech5RecipeExtractor.java b/src/main/java/com/glodblock/github/nei/recipes/extractor/GregTech5RecipeExtractor.java index cefbc501..37437ecf 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/extractor/GregTech5RecipeExtractor.java +++ b/src/main/java/com/glodblock/github/nei/recipes/extractor/GregTech5RecipeExtractor.java @@ -1,16 +1,20 @@ package com.glodblock.github.nei.recipes.extractor; -import codechicken.nei.PositionedStack; -import com.glodblock.github.nei.object.IRecipeExtractor; -import com.glodblock.github.nei.object.OrderStack; -import gregtech.api.enums.ItemList; -import gregtech.common.items.GT_FluidDisplayItem; import java.util.List; + import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import codechicken.nei.PositionedStack; + +import com.glodblock.github.nei.object.IRecipeExtractor; +import com.glodblock.github.nei.object.OrderStack; + +import gregtech.api.enums.ItemList; +import gregtech.common.items.GT_FluidDisplayItem; + public class GregTech5RecipeExtractor implements IRecipeExtractor { boolean removeSpecial; @@ -33,9 +37,8 @@ public class GregTech5RecipeExtractor implements IRecipeExtractor { private void removeSpecial(List list) { for (int i = list.size() - 1; i >= 0; i--) { PositionedStack positionedStack = list.get(i); - if (positionedStack != null - && (positionedStack.items[0].isItemEqual(ItemList.Tool_DataStick.get(1)) - || positionedStack.items[0].isItemEqual(ItemList.Tool_DataOrb.get(1)))) { + if (positionedStack != null && (positionedStack.items[0].isItemEqual(ItemList.Tool_DataStick.get(1)) + || positionedStack.items[0].isItemEqual(ItemList.Tool_DataOrb.get(1)))) { list.remove(i); break; } diff --git a/src/main/java/com/glodblock/github/nei/recipes/extractor/GregTech6RecipeExtractor.java b/src/main/java/com/glodblock/github/nei/recipes/extractor/GregTech6RecipeExtractor.java index fe5c22d3..e3d63ce5 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/extractor/GregTech6RecipeExtractor.java +++ b/src/main/java/com/glodblock/github/nei/recipes/extractor/GregTech6RecipeExtractor.java @@ -1,14 +1,18 @@ package com.glodblock.github.nei.recipes.extractor; -import codechicken.nei.PositionedStack; -import com.glodblock.github.nei.object.IRecipeExtractor; -import com.glodblock.github.nei.object.OrderStack; -import gregapi.item.ItemFluidDisplay; -import gregapi.recipes.Recipe; import java.util.List; + import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; +import codechicken.nei.PositionedStack; + +import com.glodblock.github.nei.object.IRecipeExtractor; +import com.glodblock.github.nei.object.OrderStack; + +import gregapi.item.ItemFluidDisplay; +import gregapi.recipes.Recipe; + public class GregTech6RecipeExtractor implements IRecipeExtractor { private final Recipe.RecipeMap Recipes; diff --git a/src/main/java/com/glodblock/github/nei/recipes/extractor/IndustrialCraftRecipeExtractor.java b/src/main/java/com/glodblock/github/nei/recipes/extractor/IndustrialCraftRecipeExtractor.java index 6a57bce5..add87431 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/extractor/IndustrialCraftRecipeExtractor.java +++ b/src/main/java/com/glodblock/github/nei/recipes/extractor/IndustrialCraftRecipeExtractor.java @@ -1,21 +1,25 @@ package com.glodblock.github.nei.recipes.extractor; -import codechicken.nei.PositionedStack; -import codechicken.nei.recipe.IRecipeHandler; -import com.glodblock.github.nei.object.IRecipeExtractor; -import com.glodblock.github.nei.object.OrderStack; -import com.glodblock.github.util.Ae2Reflect; -import ic2.neiIntegration.core.recipehandler.FluidCannerRecipeHandler; -import ic2.neiIntegration.core.recipehandler.OreWashingRecipeHandler; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.LinkedList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; + import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import codechicken.nei.PositionedStack; +import codechicken.nei.recipe.IRecipeHandler; + +import com.glodblock.github.nei.object.IRecipeExtractor; +import com.glodblock.github.nei.object.OrderStack; +import com.glodblock.github.util.Ae2Reflect; + +import ic2.neiIntegration.core.recipehandler.FluidCannerRecipeHandler; +import ic2.neiIntegration.core.recipehandler.OreWashingRecipeHandler; + public class IndustrialCraftRecipeExtractor implements IRecipeExtractor { @Override @@ -33,9 +37,8 @@ public class IndustrialCraftRecipeExtractor implements IRecipeExtractor { List> stacks = new LinkedList<>(); if (recipe instanceof FluidCannerRecipeHandler) { - FluidCannerRecipeHandler.CachedFluidCannerRecipe cachedRecipe = - (FluidCannerRecipeHandler.CachedFluidCannerRecipe) - ((FluidCannerRecipeHandler) recipe).arecipes.get(index); + FluidCannerRecipeHandler.CachedFluidCannerRecipe cachedRecipe = (FluidCannerRecipeHandler.CachedFluidCannerRecipe) ((FluidCannerRecipeHandler) recipe).arecipes + .get(index); FluidStack input = ReflectIC2.getInputFluid(cachedRecipe); PositionedStack add = rawInputs.size() > 1 ? rawInputs.get(1) : null; stacks.add(OrderStack.pack(add, 0)); @@ -52,14 +55,13 @@ public class IndustrialCraftRecipeExtractor implements IRecipeExtractor { } @Override - public List> getOutputIngredients( - List rawOutputs, IRecipeHandler recipe, int index) { + public List> getOutputIngredients(List rawOutputs, IRecipeHandler recipe, + int index) { List> stacks = new LinkedList<>(); if (recipe instanceof FluidCannerRecipeHandler) { - FluidCannerRecipeHandler.CachedFluidCannerRecipe cachedRecipe = - (FluidCannerRecipeHandler.CachedFluidCannerRecipe) - ((FluidCannerRecipeHandler) recipe).arecipes.get(index); + FluidCannerRecipeHandler.CachedFluidCannerRecipe cachedRecipe = (FluidCannerRecipeHandler.CachedFluidCannerRecipe) ((FluidCannerRecipeHandler) recipe).arecipes + .get(index); FluidStack output = ReflectIC2.getOutputFluid(cachedRecipe); stacks.add(new OrderStack<>(output, 0)); } else { @@ -79,8 +81,8 @@ public class IndustrialCraftRecipeExtractor implements IRecipeExtractor { static { try { inputsF = Ae2Reflect.reflectField(FluidCannerRecipeHandler.CachedFluidCannerRecipe.class, "fluidInput"); - resultF = - Ae2Reflect.reflectField(FluidCannerRecipeHandler.CachedFluidCannerRecipe.class, "fluidOutput"); + resultF = Ae2Reflect + .reflectField(FluidCannerRecipeHandler.CachedFluidCannerRecipe.class, "fluidOutput"); oreWasherWater = Ae2Reflect.reflectMethod(OreWashingRecipeHandler.class, "getreqWater", int.class); } catch (NoSuchFieldException | NoSuchMethodException e) { throw new IllegalStateException("Failed to initialize IC2 reflection hacks!", e); diff --git a/src/main/java/com/glodblock/github/nei/recipes/extractor/VanillaRecipeExtractor.java b/src/main/java/com/glodblock/github/nei/recipes/extractor/VanillaRecipeExtractor.java index 08a85c14..0847bcc6 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/extractor/VanillaRecipeExtractor.java +++ b/src/main/java/com/glodblock/github/nei/recipes/extractor/VanillaRecipeExtractor.java @@ -1,11 +1,13 @@ package com.glodblock.github.nei.recipes.extractor; -import codechicken.nei.PositionedStack; -import com.glodblock.github.nei.object.IRecipeExtractor; -import com.glodblock.github.nei.object.OrderStack; import java.util.LinkedList; import java.util.List; +import codechicken.nei.PositionedStack; + +import com.glodblock.github.nei.object.IRecipeExtractor; +import com.glodblock.github.nei.object.OrderStack; + public class VanillaRecipeExtractor implements IRecipeExtractor { private final boolean c; diff --git a/src/main/java/com/glodblock/github/network/CPacketCraftRequest.java b/src/main/java/com/glodblock/github/network/CPacketCraftRequest.java index c7a98720..e644dac1 100644 --- a/src/main/java/com/glodblock/github/network/CPacketCraftRequest.java +++ b/src/main/java/com/glodblock/github/network/CPacketCraftRequest.java @@ -1,5 +1,14 @@ package com.glodblock.github.network; +import java.util.Objects; +import java.util.concurrent.Future; + +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.api.networking.IGrid; import appeng.api.networking.IGridHost; import appeng.api.networking.IGridNode; @@ -8,20 +17,16 @@ import appeng.api.networking.crafting.ICraftingJob; import appeng.container.ContainerOpenContext; import appeng.container.implementations.ContainerCraftAmount; import appeng.core.AELog; + import com.glodblock.github.client.gui.container.ContainerFluidCraftConfirm; import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import java.util.Objects; -import java.util.concurrent.Future; -import javax.annotation.Nullable; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; public class CPacketCraftRequest implements IMessage { @@ -54,8 +59,8 @@ public class CPacketCraftRequest implements IMessage { public IMessage onMessage(CPacketCraftRequest message, MessageContext ctx) { if (ctx.getServerHandler().playerEntity.openContainer instanceof ContainerCraftAmount) { EntityPlayerMP player = ctx.getServerHandler().playerEntity; - final ContainerCraftAmount cca = - (ContainerCraftAmount) ctx.getServerHandler().playerEntity.openContainer; + final ContainerCraftAmount cca = (ContainerCraftAmount) ctx + .getServerHandler().playerEntity.openContainer; final Object target = cca.getTarget(); if (target instanceof IGridHost) { final IGridHost gh = (IGridHost) target; @@ -76,7 +81,11 @@ public class CPacketCraftRequest implements IMessage { try { final ICraftingGrid cg = g.getCache(ICraftingGrid.class); futureJob = cg.beginCraftingJob( - cca.getWorld(), cca.getGrid(), cca.getActionSrc(), cca.getItemToCraft(), null); + cca.getWorld(), + cca.getGrid(), + cca.getActionSrc(), + cca.getItemToCraft(), + null); final ContainerOpenContext context = cca.getOpenContext(); if (context != null) { @@ -90,8 +99,7 @@ public class CPacketCraftRequest implements IMessage { GuiType.FLUID_CRAFTING_CONFIRM); if (player.openContainer instanceof ContainerFluidCraftConfirm) { - final ContainerFluidCraftConfirm ccc = - (ContainerFluidCraftConfirm) player.openContainer; + final ContainerFluidCraftConfirm ccc = (ContainerFluidCraftConfirm) player.openContainer; ccc.setAutoStart(message.heldShift); ccc.setJob(futureJob); cca.detectAndSendChanges(); diff --git a/src/main/java/com/glodblock/github/network/CPacketDumpTank.java b/src/main/java/com/glodblock/github/network/CPacketDumpTank.java index 71ca0e94..f7a8e507 100644 --- a/src/main/java/com/glodblock/github/network/CPacketDumpTank.java +++ b/src/main/java/com/glodblock/github/network/CPacketDumpTank.java @@ -1,12 +1,15 @@ package com.glodblock.github.network; +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayerMP; + import com.glodblock.github.client.gui.ITankDump; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import javax.annotation.Nullable; -import net.minecraft.entity.player.EntityPlayerMP; public class CPacketDumpTank implements IMessage { diff --git a/src/main/java/com/glodblock/github/network/CPacketEncodePattern.java b/src/main/java/com/glodblock/github/network/CPacketEncodePattern.java index 3cd62fe3..8d0882c5 100644 --- a/src/main/java/com/glodblock/github/network/CPacketEncodePattern.java +++ b/src/main/java/com/glodblock/github/network/CPacketEncodePattern.java @@ -1,12 +1,15 @@ package com.glodblock.github.network; +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayerMP; + import com.glodblock.github.client.gui.container.ContainerFluidPatternEncoder; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import javax.annotation.Nullable; -import net.minecraft.entity.player.EntityPlayerMP; public class CPacketEncodePattern implements IMessage { diff --git a/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java b/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java index f78bc299..7097f7d1 100644 --- a/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java +++ b/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java @@ -1,13 +1,15 @@ package com.glodblock.github.network; +import net.minecraft.inventory.Container; + import com.glodblock.github.client.gui.container.ContainerFluidCraftConfirm; import com.glodblock.github.client.gui.container.ContainerFluidStorageBus; import com.glodblock.github.client.gui.container.base.FCContainerEncodeTerminal; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import net.minecraft.inventory.Container; public class CPacketFluidPatternTermBtns implements IMessage { diff --git a/src/main/java/com/glodblock/github/network/CPacketFluidUpdate.java b/src/main/java/com/glodblock/github/network/CPacketFluidUpdate.java index 5602d58d..b421d7fd 100644 --- a/src/main/java/com/glodblock/github/network/CPacketFluidUpdate.java +++ b/src/main/java/com/glodblock/github/network/CPacketFluidUpdate.java @@ -1,21 +1,25 @@ package com.glodblock.github.network; -import appeng.api.storage.data.IAEFluidStack; -import appeng.util.item.AEItemStack; -import com.glodblock.github.client.gui.container.ContainerFluidMonitor; -import com.glodblock.github.util.Util; -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; +import appeng.api.storage.data.IAEFluidStack; +import appeng.util.item.AEItemStack; + +import com.glodblock.github.client.gui.container.ContainerFluidMonitor; +import com.glodblock.github.util.Util; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; + public class CPacketFluidUpdate implements IMessage { private Map list; @@ -78,12 +82,11 @@ public class CPacketFluidUpdate implements IMessage { EntityPlayer player = ctx.getServerHandler().playerEntity; if (container instanceof ContainerFluidMonitor) { ItemStack item = player.inventory.getItemStack(); - ((ContainerFluidMonitor) container) - .postChange( - new ArrayList<>(message.list.values()), - message.itemStack == null ? item : message.itemStack, - player, - message.slotIndex); + ((ContainerFluidMonitor) container).postChange( + new ArrayList<>(message.list.values()), + message.itemStack == null ? item : message.itemStack, + player, + message.slotIndex); } return null; } diff --git a/src/main/java/com/glodblock/github/network/CPacketInventoryAction.java b/src/main/java/com/glodblock/github/network/CPacketInventoryAction.java index 449db017..4bfc95d6 100644 --- a/src/main/java/com/glodblock/github/network/CPacketInventoryAction.java +++ b/src/main/java/com/glodblock/github/network/CPacketInventoryAction.java @@ -1,27 +1,32 @@ package com.glodblock.github.network; +import java.io.IOException; +import java.util.Objects; + +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.storage.data.IAEItemStack; import appeng.container.AEBaseContainer; import appeng.container.ContainerOpenContext; import appeng.container.implementations.ContainerCraftAmount; import appeng.helpers.InventoryAction; import appeng.util.item.AEItemStack; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerPatternValueAmount; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import java.io.IOException; -import java.util.Objects; -import javax.annotation.Nullable; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.fluids.FluidStack; public class CPacketInventoryAction implements IMessage { @@ -95,14 +100,12 @@ public class CPacketInventoryAction implements IMessage { sender, te.getWorldObj(), new BlockPos(te), - Objects.requireNonNull( - baseContainer.getOpenContext().getSide()), + Objects.requireNonNull(baseContainer.getOpenContext().getSide()), GuiType.FLUID_CRAFTING_AMOUNT); if (sender.openContainer instanceof ContainerCraftAmount) { final ContainerCraftAmount cca = (ContainerCraftAmount) sender.openContainer; if (baseContainer.getTargetStack() != null) { - cca.getCraftingItem() - .putStack(baseContainer.getTargetStack().getItemStack()); + cca.getCraftingItem().putStack(baseContainer.getTargetStack().getItemStack()); cca.setItemToCraft(baseContainer.getTargetStack()); } cca.detectAndSendChanges(); @@ -116,8 +119,7 @@ public class CPacketInventoryAction implements IMessage { sender, te.getWorldObj(), new BlockPos(te), - Objects.requireNonNull( - baseContainer.getOpenContext().getSide()), + Objects.requireNonNull(baseContainer.getOpenContext().getSide()), GuiType.PATTERN_VALUE_SET); int amt = (int) message.stack.getStackSize(); if (message.stack.getItem() instanceof ItemFluidPacket) { @@ -129,8 +131,7 @@ public class CPacketInventoryAction implements IMessage { final ContainerPatternValueAmount cpv = (ContainerPatternValueAmount) sender.openContainer; if (baseContainer.getTargetStack() != null) { cpv.setValueIndex(message.slot); - cpv.getPatternValue() - .putStack(baseContainer.getTargetStack().getItemStack()); + cpv.getPatternValue().putStack(baseContainer.getTargetStack().getItemStack()); } cpv.detectAndSendChanges(); } diff --git a/src/main/java/com/glodblock/github/network/CPacketLevelMaintainer.java b/src/main/java/com/glodblock/github/network/CPacketLevelMaintainer.java index 927af1e6..e33b4a35 100644 --- a/src/main/java/com/glodblock/github/network/CPacketLevelMaintainer.java +++ b/src/main/java/com/glodblock/github/network/CPacketLevelMaintainer.java @@ -1,18 +1,22 @@ package com.glodblock.github.network; +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + import appeng.api.storage.data.IAEItemStack; import appeng.util.item.AEItemStack; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerLevelMaintainer; import com.glodblock.github.common.tile.TileLevelMaintainer; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import javax.annotation.Nullable; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; public class CPacketLevelMaintainer implements IMessage { @@ -82,6 +86,7 @@ public class CPacketLevelMaintainer implements IMessage { } public static class Handler implements IMessageHandler { + private void refresh(ContainerLevelMaintainer cca, EntityPlayerMP player) { SPacketMEInventoryUpdate piu = new SPacketMEInventoryUpdate(false); for (int i = 0; i < TileLevelMaintainer.REQ_COUNT; i++) { @@ -91,12 +96,13 @@ public class CPacketLevelMaintainer implements IMessage { if (is1 != null) { NBTTagCompound data; data = is1.getItemStack().getTagCompound(); - piu.appendItem(setTag( - is, - is1.getStackSize(), - i, - data.getBoolean("Enable"), - cca.getTile().requests.getState(i).ordinal())); + piu.appendItem( + setTag( + is, + is1.getStackSize(), + i, + data.getBoolean("Enable"), + cca.getTile().requests.getState(i).ordinal())); } else { piu.appendItem(setTag(is, 0, i, true, 0)); } @@ -111,8 +117,8 @@ public class CPacketLevelMaintainer implements IMessage { if (message.action.startsWith("TileLevelMaintainer.") && ctx.getServerHandler().playerEntity.openContainer instanceof ContainerLevelMaintainer) { EntityPlayerMP player = ctx.getServerHandler().playerEntity; - final ContainerLevelMaintainer cca = - (ContainerLevelMaintainer) ctx.getServerHandler().playerEntity.openContainer; + final ContainerLevelMaintainer cca = (ContainerLevelMaintainer) ctx + .getServerHandler().playerEntity.openContainer; switch (message.action) { case "TileLevelMaintainer.Quantity": cca.getTile().updateQuantity(message.slotIndex, message.size); diff --git a/src/main/java/com/glodblock/github/network/CPacketPatternValueSet.java b/src/main/java/com/glodblock/github/network/CPacketPatternValueSet.java index 307490ea..72980542 100644 --- a/src/main/java/com/glodblock/github/network/CPacketPatternValueSet.java +++ b/src/main/java/com/glodblock/github/network/CPacketPatternValueSet.java @@ -1,8 +1,17 @@ package com.glodblock.github.network; +import java.util.Objects; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.networking.IGridHost; import appeng.container.ContainerOpenContext; import appeng.container.slot.SlotFake; + import com.glodblock.github.client.gui.container.ContainerPatternValueAmount; import com.glodblock.github.client.gui.container.base.FCContainerEncodeTerminal; import com.glodblock.github.common.item.ItemFluidPacket; @@ -10,16 +19,11 @@ import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.Util; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import java.util.Objects; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.fluids.FluidStack; public class CPacketPatternValueSet implements IMessage { @@ -76,8 +80,7 @@ public class CPacketPatternValueSet implements IMessage { if (Util.isFluidPacket(stack)) { FluidStack fluidStack = ItemFluidPacket.getFluidStack(stack); if (fluidStack != null) { - fluidStack = ItemFluidPacket.getFluidStack(stack) - .copy(); + fluidStack = ItemFluidPacket.getFluidStack(stack).copy(); fluidStack.amount = message.amount; } slot.putStack(ItemFluidPacket.newStack(fluidStack)); diff --git a/src/main/java/com/glodblock/github/network/CPacketSwitchGuis.java b/src/main/java/com/glodblock/github/network/CPacketSwitchGuis.java index c152ed21..ed9bd861 100644 --- a/src/main/java/com/glodblock/github/network/CPacketSwitchGuis.java +++ b/src/main/java/com/glodblock/github/network/CPacketSwitchGuis.java @@ -1,19 +1,24 @@ package com.glodblock.github.network; +import java.util.Objects; + +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.inventory.Container; +import net.minecraft.tileentity.TileEntity; + import appeng.container.AEBaseContainer; import appeng.container.ContainerOpenContext; + import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import java.util.Objects; -import javax.annotation.Nullable; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.inventory.Container; -import net.minecraft.tileentity.TileEntity; public class CPacketSwitchGuis implements IMessage { @@ -38,6 +43,7 @@ public class CPacketSwitchGuis implements IMessage { } public static class Handler implements IMessageHandler { + @Nullable @Override public IMessage onMessage(CPacketSwitchGuis message, MessageContext ctx) { diff --git a/src/main/java/com/glodblock/github/network/CPacketTransferRecipe.java b/src/main/java/com/glodblock/github/network/CPacketTransferRecipe.java index 235bcb02..4be86049 100644 --- a/src/main/java/com/glodblock/github/network/CPacketTransferRecipe.java +++ b/src/main/java/com/glodblock/github/network/CPacketTransferRecipe.java @@ -1,23 +1,27 @@ package com.glodblock.github.network; -import com.glodblock.github.client.gui.container.base.FCContainerEncodeTerminal; -import com.glodblock.github.common.item.ItemFluidPacket; -import com.glodblock.github.nei.NEIUtils; -import com.glodblock.github.nei.object.OrderStack; -import cpw.mods.fml.common.network.ByteBufUtils; -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; import java.util.LinkedList; import java.util.List; + import javax.annotation.Nullable; + import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; +import com.glodblock.github.client.gui.container.base.FCContainerEncodeTerminal; +import com.glodblock.github.common.item.ItemFluidPacket; +import com.glodblock.github.nei.NEIUtils; +import com.glodblock.github.nei.object.OrderStack; + +import cpw.mods.fml.common.network.ByteBufUtils; +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; + public class CPacketTransferRecipe implements IMessage { private List> inputs; diff --git a/src/main/java/com/glodblock/github/network/CPacketValueConfig.java b/src/main/java/com/glodblock/github/network/CPacketValueConfig.java index a58beef1..26cf6a19 100644 --- a/src/main/java/com/glodblock/github/network/CPacketValueConfig.java +++ b/src/main/java/com/glodblock/github/network/CPacketValueConfig.java @@ -1,14 +1,17 @@ package com.glodblock.github.network; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; + import com.glodblock.github.client.gui.container.ContainerFluidLevelEmitter; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; public class CPacketValueConfig implements IMessage { + private long amount; private int valueIndex; diff --git a/src/main/java/com/glodblock/github/network/SPacketFluidUpdate.java b/src/main/java/com/glodblock/github/network/SPacketFluidUpdate.java index 457e5639..831dce1f 100644 --- a/src/main/java/com/glodblock/github/network/SPacketFluidUpdate.java +++ b/src/main/java/com/glodblock/github/network/SPacketFluidUpdate.java @@ -1,20 +1,24 @@ package com.glodblock.github.network; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.item.ItemStack; + import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; import appeng.util.item.AEItemStack; + import com.glodblock.github.client.gui.*; import com.glodblock.github.util.Util; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.item.ItemStack; public class SPacketFluidUpdate implements IMessage { diff --git a/src/main/java/com/glodblock/github/network/SPacketMEInventoryUpdate.java b/src/main/java/com/glodblock/github/network/SPacketMEInventoryUpdate.java index e8d35f4c..8750931a 100644 --- a/src/main/java/com/glodblock/github/network/SPacketMEInventoryUpdate.java +++ b/src/main/java/com/glodblock/github/network/SPacketMEInventoryUpdate.java @@ -1,23 +1,27 @@ package com.glodblock.github.network; +import java.io.IOException; +import java.nio.BufferOverflowException; +import java.util.LinkedList; +import java.util.List; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; + import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; import appeng.util.item.AEFluidStack; import appeng.util.item.AEItemStack; + import com.glodblock.github.client.gui.GuiFluidCraftConfirm; import com.glodblock.github.client.gui.GuiFluidMonitor; import com.glodblock.github.client.gui.GuiItemMonitor; import com.glodblock.github.client.gui.GuiLevelMaintainer; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import java.io.IOException; -import java.nio.BufferOverflowException; -import java.util.LinkedList; -import java.util.List; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; public class SPacketMEInventoryUpdate implements IMessage { @@ -90,7 +94,7 @@ public class SPacketMEInventoryUpdate implements IMessage { public static class Handler implements IMessageHandler { @Override - @SuppressWarnings({"unchecked", "rawtypes"}) + @SuppressWarnings({ "unchecked", "rawtypes" }) public IMessage onMessage(SPacketMEInventoryUpdate message, MessageContext ctx) { final GuiScreen gs = Minecraft.getMinecraft().currentScreen; if (gs instanceof GuiFluidMonitor) { diff --git a/src/main/java/com/glodblock/github/network/SPacketSetItemAmount.java b/src/main/java/com/glodblock/github/network/SPacketSetItemAmount.java index c2350423..53c18234 100644 --- a/src/main/java/com/glodblock/github/network/SPacketSetItemAmount.java +++ b/src/main/java/com/glodblock/github/network/SPacketSetItemAmount.java @@ -1,13 +1,16 @@ package com.glodblock.github.network; +import javax.annotation.Nullable; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; + import com.glodblock.github.client.gui.GuiPatternValueAmount; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import javax.annotation.Nullable; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; public class SPacketSetItemAmount implements IMessage { @@ -32,6 +35,7 @@ public class SPacketSetItemAmount implements IMessage { } public static class Handler implements IMessageHandler { + @Nullable @Override public IMessage onMessage(SPacketSetItemAmount message, MessageContext ctx) { diff --git a/src/main/java/com/glodblock/github/proxy/ClientProxy.java b/src/main/java/com/glodblock/github/proxy/ClientProxy.java index 24f2cd17..06463694 100644 --- a/src/main/java/com/glodblock/github/proxy/ClientProxy.java +++ b/src/main/java/com/glodblock/github/proxy/ClientProxy.java @@ -4,6 +4,7 @@ import com.glodblock.github.loader.ListenerLoader; import com.glodblock.github.loader.RenderLoader; import com.glodblock.github.nei.recipes.DefaultExtractorLoader; import com.glodblock.github.util.ModAndClassUtil; + import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; diff --git a/src/main/java/com/glodblock/github/proxy/CommonProxy.java b/src/main/java/com/glodblock/github/proxy/CommonProxy.java index 2e94687b..ac106808 100644 --- a/src/main/java/com/glodblock/github/proxy/CommonProxy.java +++ b/src/main/java/com/glodblock/github/proxy/CommonProxy.java @@ -1,20 +1,23 @@ package com.glodblock.github.proxy; +import net.minecraft.item.ItemStack; + import appeng.api.AEApi; import appeng.api.IAppEngApi; import appeng.api.config.Upgrades; + import com.glodblock.github.FluidCraft; import com.glodblock.github.common.Config; import com.glodblock.github.common.tile.TileWalrus; import com.glodblock.github.inventory.external.AEFluidInterfaceHandler; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.util.ModAndClassUtil; + import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; -import net.minecraft.item.ItemStack; public class CommonProxy { diff --git a/src/main/java/com/glodblock/github/util/Ae2Reflect.java b/src/main/java/com/glodblock/github/util/Ae2Reflect.java index 8f4d5e2f..0b6412a1 100644 --- a/src/main/java/com/glodblock/github/util/Ae2Reflect.java +++ b/src/main/java/com/glodblock/github/util/Ae2Reflect.java @@ -1,5 +1,11 @@ package com.glodblock.github.util; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.Arrays; + +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.implementations.IUpgradeableHost; import appeng.api.networking.IGrid; import appeng.api.networking.crafting.ICraftingCPU; @@ -16,10 +22,6 @@ import appeng.me.storage.MEPassThrough; import appeng.parts.p2p.PartP2PLiquids; import appeng.util.inv.ItemSlot; import appeng.util.prioitylist.IPartitionList; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.Arrays; -import net.minecraftforge.fluids.IFluidHandler; public class Ae2Reflect { @@ -53,8 +55,11 @@ public class Ae2Reflect { fContainerUpgradeable_upgradeable = Ae2Reflect.reflectField(ContainerUpgradeable.class, "upgradeable"); mItemSlot_setExtractable = reflectMethod(ItemSlot.class, "setExtractable", boolean.class); mCPU_getGrid = reflectMethod(CraftingCPUCluster.class, "getGrid"); - mCPU_postChange = - reflectMethod(CraftingCPUCluster.class, "postChange", IAEItemStack.class, BaseActionSource.class); + mCPU_postChange = reflectMethod( + CraftingCPUCluster.class, + "postChange", + IAEItemStack.class, + BaseActionSource.class); mCPU_markDirty = reflectMethod(CraftingCPUCluster.class, "markDirty"); mP2PLiquids_getTarget = reflectMethod(PartP2PLiquids.class, "getTarget"); } catch (Exception e) { @@ -75,8 +80,7 @@ public class Ae2Reflect { try { f = owner.getDeclaredField(name); if (f != null) break; - } catch (NoSuchFieldException ignore) { - } + } catch (NoSuchFieldException ignore) {} } if (f == null) throw new NoSuchFieldException("Can't find field from " + Arrays.toString(names)); f.setAccessible(true); diff --git a/src/main/java/com/glodblock/github/util/Ae2ReflectClient.java b/src/main/java/com/glodblock/github/util/Ae2ReflectClient.java index 04c2221f..a0e5bdf6 100644 --- a/src/main/java/com/glodblock/github/util/Ae2ReflectClient.java +++ b/src/main/java/com/glodblock/github/util/Ae2ReflectClient.java @@ -1,17 +1,19 @@ package com.glodblock.github.util; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.List; +import java.util.Set; + +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + import appeng.client.gui.AEBaseGui; import appeng.client.gui.implementations.GuiCraftingStatus; import appeng.client.gui.widgets.GuiTabButton; import appeng.client.render.AppEngRenderItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.List; -import java.util.Set; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; @SideOnly(Side.CLIENT) public class Ae2ReflectClient { diff --git a/src/main/java/com/glodblock/github/util/BlockPos.java b/src/main/java/com/glodblock/github/util/BlockPos.java index 92797088..22e268cc 100644 --- a/src/main/java/com/glodblock/github/util/BlockPos.java +++ b/src/main/java/com/glodblock/github/util/BlockPos.java @@ -1,7 +1,9 @@ package com.glodblock.github.util; import java.util.Objects; + import javax.annotation.Nonnull; + import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; diff --git a/src/main/java/com/glodblock/github/util/DualityFluidInterface.java b/src/main/java/com/glodblock/github/util/DualityFluidInterface.java index 3c69a361..3944bded 100644 --- a/src/main/java/com/glodblock/github/util/DualityFluidInterface.java +++ b/src/main/java/com/glodblock/github/util/DualityFluidInterface.java @@ -1,5 +1,16 @@ package com.glodblock.github.util; +import java.util.Objects; + +import net.minecraft.inventory.IInventory; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.config.Actionable; import appeng.api.config.Upgrades; import appeng.api.implementations.IUpgradeableHost; @@ -30,28 +41,15 @@ import appeng.util.ConfigManager; import appeng.util.IConfigManagerHost; import appeng.util.Platform; import appeng.util.item.AEFluidStack; + import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.AEFluidInventory; import com.glodblock.github.inventory.IAEFluidInventory; import com.glodblock.github.inventory.IAEFluidTank; import com.glodblock.github.inventory.MEMonitorIFluidHandler; -import java.util.Objects; -import net.minecraft.inventory.IInventory; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; -import net.minecraftforge.fluids.IFluidHandler; -public class DualityFluidInterface - implements IGridTickable, - IStorageMonitorable, - IAEFluidInventory, - IUpgradeableHost, - IConfigManagerHost, - IFluidHandler { +public class DualityFluidInterface implements IGridTickable, IStorageMonitorable, IAEFluidInventory, IUpgradeableHost, + IConfigManagerHost, IFluidHandler { public static final int NUMBER_OF_TANKS = 6; public static final long TANK_CAPACITY = 16000; @@ -64,10 +62,12 @@ public class DualityFluidInterface private final AEFluidInventory config = new AEFluidInventory(this, NUMBER_OF_TANKS, Integer.MAX_VALUE); private final IAEFluidStack[] requireWork; private int isWorking = -1; - private final MEMonitorPassThrough items = - new MEMonitorPassThrough(new NullInventory<>(), StorageChannel.ITEMS); - private final MEMonitorPassThrough fluids = - new MEMonitorPassThrough(new NullInventory<>(), StorageChannel.FLUIDS); + private final MEMonitorPassThrough items = new MEMonitorPassThrough( + new NullInventory<>(), + StorageChannel.ITEMS); + private final MEMonitorPassThrough fluids = new MEMonitorPassThrough( + new NullInventory<>(), + StorageChannel.FLUIDS); private boolean resetConfigCache = true; public DualityFluidInterface(final AENetworkProxy networkProxy, final IInterfaceHost ih) { @@ -147,10 +147,7 @@ public class DualityFluidInterface private IMEMonitor getFluidGrid() { try { - return gridProxy - .getGrid() - .getCache(IStorageGrid.class) - .getFluidInventory(); + return gridProxy.getGrid().getCache(IStorageGrid.class).getFluidInventory(); } catch (GridAccessException e) { return null; } @@ -178,7 +175,10 @@ public class DualityFluidInterface @Override public TickingRequest getTickingRequest(IGridNode node) { return new TickingRequest( - TickRates.Interface.getMin(), TickRates.Interface.getMax(), !this.hasWorkToDo(), true); + TickRates.Interface.getMin(), + TickRates.Interface.getMax(), + !this.hasWorkToDo(), + true); } @Override @@ -187,8 +187,7 @@ public class DualityFluidInterface return TickRateModulation.SLEEP; } else { boolean couldDoWork = this.updateStorage(); - return this.hasWorkToDo() - ? (couldDoWork ? TickRateModulation.URGENT : TickRateModulation.SLOWER) + return this.hasWorkToDo() ? (couldDoWork ? TickRateModulation.URGENT : TickRateModulation.SLOWER) : TickRateModulation.SLEEP; } } @@ -243,8 +242,7 @@ public class DualityFluidInterface } else { this.gridProxy.getTick().sleepDevice(this.gridProxy.getNode()); } - } catch (GridAccessException ignored) { - } + } catch (GridAccessException ignored) {} } } } @@ -303,8 +301,7 @@ public class DualityFluidInterface toStore.setStackSize(-toStore.getStackSize()); FluidStack canExtract = this.tanks.drain(slot, toStore.getFluidStack(), false); if (canExtract != null && (long) canExtract.amount == toStore.getStackSize()) { - IAEFluidStack notStored = dest.injectItems(toStore, Actionable.MODULATE, this.mySource); - ; + IAEFluidStack notStored = dest.injectItems(toStore, Actionable.MODULATE, this.mySource);; toStore.setStackSize(toStore.getStackSize() - (notStored == null ? 0L : notStored.getStackSize())); if (toStore.getStackSize() > 0L) { changed = true; @@ -361,8 +358,7 @@ public class DualityFluidInterface if (this.gridProxy.isActive()) { try { this.gridProxy.getTick().wakeDevice(this.gridProxy.getNode()); - } catch (GridAccessException ignored) { - } + } catch (GridAccessException ignored) {} } TileEntity te = this.iHost.getTileEntity(); if (te != null && te.getWorldObj() != null) { @@ -398,8 +394,7 @@ public class DualityFluidInterface } else { this.gridProxy.getTick().sleepDevice(this.gridProxy.getNode()); } - } catch (GridAccessException ignored) { - } + } catch (GridAccessException ignored) {} } this.notifyNeighbors(); @@ -445,6 +440,7 @@ public class DualityFluidInterface } private static class InterfaceInventory extends MEMonitorIFluidHandler { + InterfaceInventory(DualityFluidInterface tileInterface) { super(tileInterface.tanks); } diff --git a/src/main/java/com/glodblock/github/util/FluidPatternDetails.java b/src/main/java/com/glodblock/github/util/FluidPatternDetails.java index 85fc0fa1..ea47b1d9 100644 --- a/src/main/java/com/glodblock/github/util/FluidPatternDetails.java +++ b/src/main/java/com/glodblock/github/util/FluidPatternDetails.java @@ -1,12 +1,10 @@ package com.glodblock.github.util; -import appeng.api.networking.crafting.ICraftingPatternDetails; -import appeng.api.storage.data.IAEItemStack; -import appeng.helpers.PatternHelper; -import appeng.util.item.AEItemStack; import java.util.Arrays; import java.util.Objects; + import javax.annotation.Nullable; + import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -14,6 +12,11 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import net.minecraftforge.common.util.Constants; +import appeng.api.networking.crafting.ICraftingPatternDetails; +import appeng.api.storage.data.IAEItemStack; +import appeng.helpers.PatternHelper; +import appeng.util.item.AEItemStack; + public class FluidPatternDetails implements ICraftingPatternDetails, Comparable { private final ItemStack patternStack; diff --git a/src/main/java/com/glodblock/github/util/FluidSorters.java b/src/main/java/com/glodblock/github/util/FluidSorters.java index 50a5c962..bc48429a 100644 --- a/src/main/java/com/glodblock/github/util/FluidSorters.java +++ b/src/main/java/com/glodblock/github/util/FluidSorters.java @@ -1,16 +1,20 @@ package com.glodblock.github.util; +import java.util.Comparator; + +import net.minecraftforge.fluids.Fluid; + import appeng.api.config.SortDir; import appeng.api.storage.data.IAEItemStack; import appeng.integration.IntegrationRegistry; import appeng.integration.IntegrationType; import appeng.integration.abstraction.IInvTweaks; import appeng.util.Platform; + import com.glodblock.github.common.item.ItemFluidDrop; -import java.util.Comparator; -import net.minecraftforge.fluids.Fluid; public class FluidSorters { + private static SortDir Direction = SortDir.ASCENDING; public static final Comparator CONFIG_BASED_SORT_BY_MOD = new Comparator() { @@ -19,8 +23,8 @@ public class FluidSorters { final Fluid f1 = ItemFluidDrop.getAeFluidStack(o1).getFluid(); final Fluid f2 = ItemFluidDrop.getAeFluidStack(o2).getFluid(); if (getDirection() == SortDir.ASCENDING) { - return this.secondarySort( - Util.getFluidModName(f2).compareToIgnoreCase(Util.getFluidModName(f1)), f1, f2); + return this + .secondarySort(Util.getFluidModName(f2).compareToIgnoreCase(Util.getFluidModName(f1)), f1, f2); } return this.secondarySort(Util.getFluidModName(f1).compareToIgnoreCase(Util.getFluidModName(f2)), f2, f1); } diff --git a/src/main/java/com/glodblock/github/util/ModAndClassUtil.java b/src/main/java/com/glodblock/github/util/ModAndClassUtil.java index dd665b0d..ea96a0d0 100644 --- a/src/main/java/com/glodblock/github/util/ModAndClassUtil.java +++ b/src/main/java/com/glodblock/github/util/ModAndClassUtil.java @@ -1,5 +1,7 @@ package com.glodblock.github.util; +import java.lang.reflect.Field; + import appeng.api.config.ActionItems; import appeng.api.config.Settings; import appeng.api.config.Upgrades; @@ -7,7 +9,6 @@ import appeng.core.AEConfig; import appeng.core.localization.ButtonToolTips; import appeng.core.localization.GuiText; import cpw.mods.fml.common.Loader; -import java.lang.reflect.Field; public final class ModAndClassUtil { diff --git a/src/main/java/com/glodblock/github/util/NameConst.java b/src/main/java/com/glodblock/github/util/NameConst.java index 2e5599cb..ba3ec1d2 100644 --- a/src/main/java/com/glodblock/github/util/NameConst.java +++ b/src/main/java/com/glodblock/github/util/NameConst.java @@ -1,10 +1,12 @@ package com.glodblock.github.util; -import com.glodblock.github.FluidCraft; import java.util.ArrayList; + import net.minecraft.client.resources.I18n; import net.minecraft.util.StatCollector; +import com.glodblock.github.FluidCraft; + public class NameConst { public static final String BLOCK_FLUID_DISCRETIZER = "fluid_discretizer"; diff --git a/src/main/java/com/glodblock/github/util/ObjectArrayIterator.java b/src/main/java/com/glodblock/github/util/ObjectArrayIterator.java index 4d27b3f6..7561d67e 100644 --- a/src/main/java/com/glodblock/github/util/ObjectArrayIterator.java +++ b/src/main/java/com/glodblock/github/util/ObjectArrayIterator.java @@ -6,17 +6,15 @@ import java.util.NoSuchElementException; /** * An {@link java.util.Iterator Iterator} over an array of objects. *

- * This iterator does not support {@link #remove}, as the object array cannot be - * structurally modified. + * This iterator does not support {@link #remove}, as the object array cannot be structurally modified. *

- * The iterator implements a {@link #reset} method, allowing the reset of the iterator - * back to the start if required. + * The iterator implements a {@link #reset} method, allowing the reset of the iterator back to the start if required. * * @param the type to iterate over * @since 3.0 * @version $Id: ObjectArrayIterator.java 1734648 2016-03-11 23:51:22Z ggregory $ */ -public class ObjectArrayIterator implements /*Resettable*/ Iterator { +public class ObjectArrayIterator implements /* Resettable */ Iterator { /** The array */ final E[] array; @@ -29,8 +27,7 @@ public class ObjectArrayIterator implements /*Resettable*/ Iterator { // ------------------------------------------------------------------------- /** - * Constructs an ObjectArrayIterator that will iterate over the values in the - * specified array. + * Constructs an ObjectArrayIterator that will iterate over the values in the specified array. * * @param array the array to iterate over * @throws NullPointerException if array is null @@ -41,12 +38,12 @@ public class ObjectArrayIterator implements /*Resettable*/ Iterator { } /** - * Constructs an ObjectArrayIterator that will iterate over the values in the - * specified array from a specific start index. + * Constructs an ObjectArrayIterator that will iterate over the values in the specified array from a specific start + * index. * - * @param array the array to iterate over - * @param start the index to start iterating at - * @throws NullPointerException if array is null + * @param array the array to iterate over + * @param start the index to start iterating at + * @throws NullPointerException if array is null * @throws IndexOutOfBoundsException if the start index is out of bounds */ public ObjectArrayIterator(final E array[], final int start) { @@ -54,15 +51,14 @@ public class ObjectArrayIterator implements /*Resettable*/ Iterator { } /** - * Construct an ObjectArrayIterator that will iterate over a range of values - * in the specified array. + * Construct an ObjectArrayIterator that will iterate over a range of values in the specified array. * - * @param array the array to iterate over - * @param start the index to start iterating at - * @param end the index (exclusive) to finish iterating at + * @param array the array to iterate over + * @param start the index to start iterating at + * @param end the index (exclusive) to finish iterating at * @throws IndexOutOfBoundsException if the start or end index is out of bounds - * @throws IllegalArgumentException if end index is before the start - * @throws NullPointerException if array is null + * @throws IllegalArgumentException if end index is before the start + * @throws NullPointerException if array is null */ public ObjectArrayIterator(final E array[], final int start, final int end) { super(); @@ -101,8 +97,7 @@ public class ObjectArrayIterator implements /*Resettable*/ Iterator { * Returns the next element in the array. * * @return the next element in the array - * @throws NoSuchElementException if all the elements in the array - * have already been returned + * @throws NoSuchElementException if all the elements in the array have already been returned */ @Override public E next() { diff --git a/src/main/java/com/glodblock/github/util/RenderUtil.java b/src/main/java/com/glodblock/github/util/RenderUtil.java index e12d45ec..c5a58544 100644 --- a/src/main/java/com/glodblock/github/util/RenderUtil.java +++ b/src/main/java/com/glodblock/github/util/RenderUtil.java @@ -1,31 +1,27 @@ package com.glodblock.github.util; -import appeng.api.storage.data.IAEFluidStack; import java.util.List; + import javax.annotation.Nullable; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.util.IIcon; + import org.lwjgl.opengl.GL11; +import appeng.api.storage.data.IAEFluidStack; + public final class RenderUtil { public static void renderItemIcon(IIcon icon, double size, double z, float nx, float ny, float nz) { renderItemIcon(icon, 0.0D, 0.0D, size, size, z, nx, ny, nz); } - public static void renderItemIcon( - IIcon icon, - double xStart, - double yStart, - double xEnd, - double yEnd, - double z, - float nx, - float ny, - float nz) { + public static void renderItemIcon(IIcon icon, double xStart, double yStart, double xEnd, double yEnd, double z, + float nx, float ny, float nz) { if (icon == null) { return; } @@ -45,8 +41,8 @@ public final class RenderUtil { Tessellator.instance.draw(); } - public static void renderFluidIntoGui( - Gui gui, int x, int y, int width, int height, @Nullable IAEFluidStack aeFluidStack, int capacity) { + public static void renderFluidIntoGui(Gui gui, int x, int y, int width, int height, + @Nullable IAEFluidStack aeFluidStack, int capacity) { if (aeFluidStack != null) { GL11.glDisable(2896); GL11.glColor3f(1.0F, 1.0F, 1.0F); @@ -61,7 +57,11 @@ public final class RenderUtil { for (int th = 0; th <= hi; th += 16) { if (hi - th <= 0) break; gui.drawTexturedModelRectFromIcon( - x, y + height - Math.min(16, hi - th) - th, fluidIcon, width, Math.min(16, hi - th)); + x, + y + height - Math.min(16, hi - th) - th, + fluidIcon, + width, + Math.min(16, hi - th)); } GL11.glColor3f(1.0F, 1.0F, 1.0F); } diff --git a/src/main/java/com/glodblock/github/util/SetBackedMachineSet.java b/src/main/java/com/glodblock/github/util/SetBackedMachineSet.java index 2f905a03..7237db86 100644 --- a/src/main/java/com/glodblock/github/util/SetBackedMachineSet.java +++ b/src/main/java/com/glodblock/github/util/SetBackedMachineSet.java @@ -1,14 +1,16 @@ package com.glodblock.github.util; -import appeng.api.networking.IGridHost; -import appeng.api.networking.IGridNode; -import appeng.api.networking.IMachineSet; import java.util.Iterator; import java.util.Set; import java.util.Spliterator; import java.util.function.Consumer; + import javax.annotation.Nonnull; +import appeng.api.networking.IGridHost; +import appeng.api.networking.IGridNode; +import appeng.api.networking.IMachineSet; + public class SetBackedMachineSet implements IMachineSet { private final Class machineClass; @@ -37,7 +39,7 @@ public class SetBackedMachineSet implements IMachineSet { @Override public boolean contains(Object o) { - //noinspection SuspiciousMethodCalls + // noinspection SuspiciousMethodCalls return backingSet.contains(o); } diff --git a/src/main/java/com/glodblock/github/util/Util.java b/src/main/java/com/glodblock/github/util/Util.java index 414eed79..84863459 100644 --- a/src/main/java/com/glodblock/github/util/Util.java +++ b/src/main/java/com/glodblock/github/util/Util.java @@ -1,5 +1,18 @@ package com.glodblock.github.util; +import java.io.IOException; +import java.util.Map; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.*; + +import org.apache.commons.lang3.tuple.MutablePair; + import appeng.api.AEApi; import appeng.api.config.SecurityPermissions; import appeng.api.networking.IGrid; @@ -10,24 +23,17 @@ import appeng.api.parts.IPart; import appeng.api.storage.data.IAEFluidStack; import appeng.tile.networking.TileCableBus; import appeng.util.item.AEFluidStack; + import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.IAEFluidTank; + import cpw.mods.fml.common.ModContainer; import cpw.mods.fml.common.registry.GameData; import io.netty.buffer.ByteBuf; -import java.io.IOException; -import java.util.Map; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.*; -import org.apache.commons.lang3.tuple.MutablePair; public final class Util { + public static int findItemInPlayerInvSlot(EntityPlayer player, ItemStack itemStack) { for (int i = 0; i < player.inventory.mainInventory.length; i++) { if (player.inventory.mainInventory[i] != null && player.inventory.mainInventory[i] == itemStack) return i; @@ -43,8 +49,8 @@ public final class Util { return hasPermission(player, permission, host, ForgeDirection.UNKNOWN); } - public static boolean hasPermission( - EntityPlayer player, SecurityPermissions permission, IGridHost host, ForgeDirection side) { + public static boolean hasPermission(EntityPlayer player, SecurityPermissions permission, IGridHost host, + ForgeDirection side) { return host == null || hasPermission(player, permission, host.getGridNode(side)); } @@ -56,10 +62,9 @@ public final class Util { return part == null || hasPermission(player, permission, part.getGridNode()); } - public static boolean hasPermission( - EntityPlayer player, SecurityPermissions permission, ISecurityGrid securityGrid) { - return player == null - || permission == null + public static boolean hasPermission(EntityPlayer player, SecurityPermissions permission, + ISecurityGrid securityGrid) { + return player == null || permission == null || securityGrid == null || securityGrid.hasPermission(player, permission); } @@ -214,6 +219,7 @@ public final class Util { } public static class FluidUtil { + public static IAEFluidStack createAEFluidStack(Fluid fluid) { return createAEFluidStack(new FluidStack(fluid, FluidContainerRegistry.BUCKET_VOLUME)); } @@ -227,8 +233,7 @@ public final class Util { } public static IAEFluidStack createAEFluidStack(int fluidId, long amount) { - return createAEFluidStack(new FluidStack(FluidRegistry.getFluid(fluidId), 1)) - .setStackSize(amount); + return createAEFluidStack(new FluidStack(FluidRegistry.getFluid(fluidId), 1)).setStackSize(amount); } public static boolean isEmpty(ItemStack itemStack) { From 4eb5b5f2f07fa7479cc9c016e41102d9d6f1fe72 Mon Sep 17 00:00:00 2001 From: Jason Mitchell Date: Sat, 28 Jan 2023 17:43:10 -0800 Subject: [PATCH 10/10] [ci skip] Add git-blame-ignore-revs for spotlessApply --- .git-blame-ignore-revs | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .git-blame-ignore-revs diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 00000000..2c0e607b --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,2 @@ +# Ignore spotlessApply reformat +69a5c0e6ee71fe714eabe24002f9e39aae3b97be