diff --git a/main/java/gregtech/api/enums/ItemList.java b/main/java/gregtech/api/enums/ItemList.java index 6a248349..7581e73d 100644 --- a/main/java/gregtech/api/enums/ItemList.java +++ b/main/java/gregtech/api/enums/ItemList.java @@ -645,7 +645,7 @@ public enum ItemList implements IItemContainer { Energy_LapotronicOrb2, ZPM2, Quantum_Tank_LV,Quantum_Tank_MV,Quantum_Tank_HV,Quantum_Tank_EV,Quantum_Tank_IV, Quantum_Chest_LV, Quantum_Chest_MV, Quantum_Chest_HV, Quantum_Chest_EV, Quantum_Chest_IV, - NULL, Cover_RedstoneTransmitterExternal,Cover_RedstoneTransmitterInternal,Cover_RedstoneReceiverExternal,Cover_RedstoneReceiverInternal, LargeTurbine, Ingot_Heavy1,Ingot_Heavy2,Ingot_Heavy3, Pump_LV, Pump_MV, Pump_HV, Pump_EV, Pump_IV, Teleporter; + NULL, Cover_RedstoneTransmitterExternal,Cover_RedstoneTransmitterInternal,Cover_RedstoneReceiverExternal,Cover_RedstoneReceiverInternal, LargeTurbine, Ingot_Heavy1,Ingot_Heavy2,Ingot_Heavy3, Pump_LV, Pump_MV, Pump_HV, Pump_EV, Pump_IV, Teleporter, Cover_NeedsMaintainance; public static final ItemList[] DYE_ONLY_ITEMS = {Color_00, Color_01, Color_02, Color_03, Color_04, Color_05, Color_06, Color_07, Color_08, Color_09, Color_10, Color_11, Color_12, Color_13, Color_14, Color_15} diff --git a/main/java/gregtech/api/gui/GT_Container.java b/main/java/gregtech/api/gui/GT_Container.java index 6585f79d..dc5e59d7 100644 --- a/main/java/gregtech/api/gui/GT_Container.java +++ b/main/java/gregtech/api/gui/GT_Container.java @@ -25,6 +25,7 @@ public class GT_Container extends Container { public InventoryPlayer mPlayerInventory; public GT_Container (InventoryPlayer aPlayerInventory, IGregTechTileEntity aTileEntityInventory) { + mTileEntity = aTileEntityInventory; mPlayerInventory = aPlayerInventory; } diff --git a/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java b/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java index 2c062c5d..d4fc27aa 100644 --- a/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java +++ b/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java @@ -19,6 +19,7 @@ public class GT_ContainerMetaTile_Machine extends GT_Container { public GT_ContainerMetaTile_Machine(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { super(aInventoryPlayer, aTileEntity); + mTileEntity = aTileEntity; if (mTileEntity != null && mTileEntity.getMetaTileEntity() != null) { diff --git a/main/java/gregtech/common/GT_Proxy.java b/main/java/gregtech/common/GT_Proxy.java index 781c60fd..6b9cbf96 100644 --- a/main/java/gregtech/common/GT_Proxy.java +++ b/main/java/gregtech/common/GT_Proxy.java @@ -148,6 +148,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { public boolean mHardRock = false; public boolean mHungerEffect = true; public boolean mOnline = true; + public boolean mIgnoreTcon = true; public int mSkeletonsShootGTArrows = 16; public int mMaxEqualEntitiesAtOneSpot = 3; public int mFlintChance = 30; @@ -199,7 +200,8 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { "naturalAluminum", "naturalAluminium", "antimatterMilligram", "antimatterGram", "strangeMatter", "coalGenerator", "electricFurnace", "unfinishedTank", "valvePart", "aquaRegia", "leatherSeal", "leatherSlimeSeal", "hambone", "slimeball", "clay", "enrichedUranium", "camoPaste", "antiBlock", "burntQuartz", "salmonRaw","blockHopper" ,"blockEnderObsidian","blockIcestone","blockMagicWood","blockEnderCore","blockHeeEndium", - "oreHeeEndium","oreHeeEndPowder","oreHeeStardust","oreHeeIgneousRock","oreHeeInstabilityOrb","crystalPureFluix","shardNether","gemFluorite"})); + "oreHeeEndium","oreHeeEndPowder","oreHeeStardust","oreHeeIgneousRock","oreHeeInstabilityOrb","crystalPureFluix","shardNether","gemFluorite", + "stickObsidian","caveCrystal","shardCrystal","dyeCrystal"})); private final Collection mInvalidNames = new HashSet(Arrays.asList(new String[] { "diamondShard", "redstoneRoot", "obsidianStick", "bloodstoneOre", "universalCable", "bronzeTube", "ironTube", "netherTube", "obbyTube", "infiniteBattery", "eliteBattery", "advancedBattery", "10kEUStore", "blueDye", "MonazitOre", "quartzCrystal", "whiteLuminiteCrystal", "darkStoneIngot", "invisiumIngot", "demoniteOrb", "enderGem", "starconiumGem", @@ -237,6 +239,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { GT_Log.ore.println("GT_Mod: Preload-Phase started!"); GregTech_API.sPreloadStarted = true; + this.mIgnoreTcon = GregTech_API.sOPStuff.get(ConfigCategories.general, "ignoreTConstruct", true); NetworkRegistry.INSTANCE.registerGuiHandler(GT_Values.GT, this); for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) { if ((tData.filledContainer.getItem() == Items.potionitem) && (tData.filledContainer.getItemDamage() == 0)) { @@ -996,13 +999,14 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { } try { aEvent.Ore.stackSize = 1; + if(this.mIgnoreTcon){ if ((aOriginalMod.toLowerCase().contains("xycraft")) || (aOriginalMod.toLowerCase().contains("tconstruct")) || ((aOriginalMod.toLowerCase().contains("natura")) && (!aOriginalMod.toLowerCase().contains("natural")))) { if (GT_Values.D1) { GT_Log.ore.println(aMod + " -> " + aEvent.Name + " is getting ignored, because of racism. :P"); } return; - } + }} String tModToName = aMod + " -> " + aEvent.Name; if ((this.mOreDictActivated) || (GregTech_API.sPostloadStarted) || ((this.mSortToTheEnd) && (GregTech_API.sLoadFinished))) { tModToName = aOriginalMod + " --Late--> " + aEvent.Name; diff --git a/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java b/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java new file mode 100644 index 00000000..a02e1755 --- /dev/null +++ b/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java @@ -0,0 +1,120 @@ +package gregtech.common.covers; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraftforge.fluids.Fluid; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.ICoverable; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.util.GT_CoverBehavior; +import gregtech.api.util.GT_Utility; + +public class GT_Cover_NeedMaintainance extends GT_CoverBehavior{ + + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) + { + boolean needsRepair = false; + if(aTileEntity instanceof IGregTechTileEntity){ + IGregTechTileEntity tTileEntity = (IGregTechTileEntity) aTileEntity; + IMetaTileEntity mTileEntity = tTileEntity.getMetaTileEntity(); + if(mTileEntity instanceof GT_MetaTileEntity_MultiBlockBase){ + GT_MetaTileEntity_MultiBlockBase multi = (GT_MetaTileEntity_MultiBlockBase) mTileEntity; + int ideal = multi.getIdealStatus(); + int real = multi.getRepairStatus(); + if((aCoverVariable ==0||aCoverVariable==1)&&(ideal-real>0)){ + needsRepair=true; + } + if((aCoverVariable ==2||aCoverVariable==3)&&(ideal-real>1)){ + needsRepair=true; + }if((aCoverVariable ==4||aCoverVariable==5)&&(ideal-real>2)){ + needsRepair=true; + }if((aCoverVariable ==6||aCoverVariable==7)&&(ideal-real>3)){ + needsRepair=true; + } + }} + if(aCoverVariable % 2 == 0){ + needsRepair = !needsRepair; + } + + aTileEntity.setOutputRedstoneSignal(aSide, (byte)(needsRepair ? 0 : 15)); + return aCoverVariable; + } + + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) + /* 64: */ { + /* 65: 54 */ aCoverVariable = (aCoverVariable + 1) % 10; + /* 66: 55 */ if (aCoverVariable == 0) { + /* 67: 55 */ GT_Utility.sendChatToPlayer(aPlayer, "Emit if 1 Maintainance Needed"); + /* 68: */ } + /* 69: 56 */ if (aCoverVariable == 1) { + /* 70: 56 */ GT_Utility.sendChatToPlayer(aPlayer, "Emit if 1 Maintainance Needed(inverted)"); + /* 71: */ } + /* 72: 57 */ if (aCoverVariable == 2) { + /* 73: 57 */ GT_Utility.sendChatToPlayer(aPlayer, "Emit if 2 Maintainance Needed"); + /* 74: */ } + /* 75: 58 */ if (aCoverVariable == 3) { + /* 76: 58 */ GT_Utility.sendChatToPlayer(aPlayer, "Emit if 2 Maintainance Needed(inverted)"); + /* 77: */ } + /* 78: 59 */ if (aCoverVariable == 4) { + /* 79: 59 */ GT_Utility.sendChatToPlayer(aPlayer, "Emit if 3 Maintainance Needed"); + /* 80: */ } + /* 81: 60 */ if (aCoverVariable == 5) { + /* 82: 60 */ GT_Utility.sendChatToPlayer(aPlayer, "Emit if 3 Maintainance Needed(inverted)"); + /* 83: */ } + /* 84: 61 */ if (aCoverVariable == 6) { + /* 85: 61 */ GT_Utility.sendChatToPlayer(aPlayer, "Emit if 4 Maintainance Needed"); + /* 86: */ } + /* 87: 62 */ if (aCoverVariable == 7) { + /* 88: 62 */ GT_Utility.sendChatToPlayer(aPlayer, "Emit if 4 Maintainance Needed(inverted)"); + /* 89: */ } + /* 90: 63 */ if (aCoverVariable == 8) { + /* 91: 63 */ GT_Utility.sendChatToPlayer(aPlayer, "Emit if 5 Maintainance Needed"); + /* 92: */ } + /* 93: 64 */ if (aCoverVariable == 9) { + /* 94: 64 */ GT_Utility.sendChatToPlayer(aPlayer, "Emit if 5 Maintainance Needed(inverted)"); + /* 95: */ } + /* 96: 65 */ return aCoverVariable; + /* 97: */ } + /* 98: */ + /* 99: */ public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) + /* 100: */ { + /* 101: 70 */ return true; + /* 102: */ } + /* 103: */ + /* 104: */ public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) + /* 105: */ { + /* 106: 75 */ return true; + /* 107: */ } + /* 108: */ + /* 109: */ public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) + /* 110: */ { + /* 111: 80 */ return true; + /* 112: */ } + /* 113: */ + /* 114: */ public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) + /* 115: */ { + /* 116: 85 */ return true; + /* 117: */ } + /* 118: */ + /* 119: */ public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) + /* 120: */ { + /* 121: 90 */ return true; + /* 122: */ } + /* 123: */ + /* 124: */ public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) + /* 125: */ { + /* 126: 95 */ return true; + /* 127: */ } + /* 128: */ + /* 129: */ public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) + /* 130: */ { + /* 131:100 */ return true; + /* 132: */ } + /* 133: */ + /* 134: */ public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) + /* 135: */ { + /* 136:105 */ return 60; + /* 137: */ } + +} diff --git a/main/java/gregtech/common/gui/GT_Container_Teleporter.java b/main/java/gregtech/common/gui/GT_Container_Teleporter.java new file mode 100644 index 00000000..fadd979b --- /dev/null +++ b/main/java/gregtech/common/gui/GT_Container_Teleporter.java @@ -0,0 +1,177 @@ +package gregtech.common.gui; + +import gregtech.api.gui.GT_ContainerMetaTile_Machine; +import gregtech.api.gui.GT_Container_BasicMachine; +import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; +import gregtech.api.gui.GT_Slot_Holo; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Teleporter; + +import java.util.Iterator; +import java.util.List; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class GT_Container_Teleporter + extends GT_ContainerMetaTile_Machine +{ + public GT_Container_Teleporter(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) + { + super(aInventoryPlayer, aTileEntity); + } + + @Override + public void addSlots(InventoryPlayer aInventoryPlayer) + { + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 8, 5, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 8, 23, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 8, 41, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 8, 59, false, false, 1)); + + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 26, 5, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 26, 23, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 26, 41, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 26, 59, false, false, 1)); + + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 152, 5, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 152, 23, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 152, 41, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 152, 59, false, false, 1)); + + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 134, 5, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 134, 23, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 134, 41, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 2, 134, 59, false, false, 1)); + } + + @Override + public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) + { + if (aSlotIndex < 0) { + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + Slot tSlot = (Slot)this.inventorySlots.get(aSlotIndex); + if ((tSlot != null) && (this.mTileEntity.getMetaTileEntity() != null)) { + switch (aSlotIndex) + { + case 0: + ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetX -= (aShifthold == 1 ? 512 : 64); + return null; + case 1: + ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetY -= (aShifthold == 1 ? 512 : 64); + return null; + case 2: + ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetZ -= (aShifthold == 1 ? 512 : 64); + return null; + case 3: + ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetD -= (aShifthold == 1 ? 16 : 8); + return null; + case 4: + ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetX -= (aShifthold == 1 ? 16 : 1); + return null; + case 5: + ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetY -= (aShifthold == 1 ? 16 : 1); + return null; + case 6: + ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetZ -= (aShifthold == 1 ? 16 : 1); + return null; + case 7: + ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetD -= (aShifthold == 1 ? 4 : 1); + return null; + case 8: + ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetX += (aShifthold == 1 ? 512 : 64); + return null; + case 9: + ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetY += (aShifthold == 1 ? 512 : 64); + return null; + case 10: + ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetZ += (aShifthold == 1 ? 512 : 64); + return null; + case 11: + ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetD += (aShifthold == 1 ? 16 : 8); + return null; + case 12: + ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetX += (aShifthold == 1 ? 16 : 1); + return null; + case 13: + ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetY += (aShifthold == 1 ? 16 : 1); + return null; + case 14: + ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetZ += (aShifthold == 1 ? 16 : 1); + return null; + case 15: + ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetD += (aShifthold == 1 ? 4 : 1); + return null; + } + } + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + + public int mEgg = 0; + public int mTargetD = 0; + public int mTargetZ = 0; + public int mTargetY = 0; + public int mTargetX = 0; + + @Override + public void detectAndSendChanges() + { + super.detectAndSendChanges(); + if ((this.mTileEntity.isClientSide()) || (this.mTileEntity.getMetaTileEntity() == null)) { + return; + } + this.mTargetX = ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetX; + this.mTargetY = ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetY; + this.mTargetZ = ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetZ; + this.mTargetD = ((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).mTargetD; + this.mEgg = (((GT_MetaTileEntity_Teleporter)this.mTileEntity.getMetaTileEntity()).hasDimensionalTeleportCapability() ? 1 : 0); + + Iterator var2 = this.crafters.iterator(); + while (var2.hasNext()) + { + ICrafting var1 = (ICrafting)var2.next(); + var1.sendProgressBarUpdate(this, 100, this.mTargetX & 0xFFFF); + var1.sendProgressBarUpdate(this, 101, this.mTargetX >>> 16); + var1.sendProgressBarUpdate(this, 102, this.mTargetY & 0xFFFF); + var1.sendProgressBarUpdate(this, 103, this.mTargetY >>> 16); + var1.sendProgressBarUpdate(this, 104, this.mTargetZ & 0xFFFF); + var1.sendProgressBarUpdate(this, 105, this.mTargetZ >>> 16); + var1.sendProgressBarUpdate(this, 106, this.mTargetD & 0xFFFF); + var1.sendProgressBarUpdate(this, 107, this.mTargetD >>> 16); + var1.sendProgressBarUpdate(this, 108, this.mEgg); + } + } + + @SideOnly(Side.CLIENT) + public void updateProgressBar(int par1, int par2) + { + super.updateProgressBar(par1, par2); + switch (par1) + { + case 100: + this.mTargetX = (this.mTargetX & 0xFFFF0000 | par2); break; + case 101: + this.mTargetX = (this.mTargetX & 0xFFFF | par2 << 16); break; + case 102: + this.mTargetY = (this.mTargetY & 0xFFFF0000 | par2); break; + case 103: + this.mTargetY = (this.mTargetY & 0xFFFF | par2 << 16); break; + case 104: + this.mTargetZ = (this.mTargetZ & 0xFFFF0000 | par2); break; + case 105: + this.mTargetZ = (this.mTargetZ & 0xFFFF | par2 << 16); break; + case 106: + this.mTargetD = (this.mTargetD & 0xFFFF0000 | par2); break; + case 107: + this.mTargetD = (this.mTargetD & 0xFFFF | par2 << 16); break; + case 108: + this.mEgg = par2; + } + } +} diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_Teleporter.java b/main/java/gregtech/common/gui/GT_GUIContainer_Teleporter.java new file mode 100644 index 00000000..467a124d --- /dev/null +++ b/main/java/gregtech/common/gui/GT_GUIContainer_Teleporter.java @@ -0,0 +1,41 @@ +package gregtech.common.gui; + +import static gregtech.api.enums.GT_Values.RES_PATH_GUI; +import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; +import gregtech.api.gui.GT_GUIContainer_BasicTank; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.util.GT_Utility; +import gregtech.common.gui.GT_Container_Teleporter; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.entity.player.InventoryPlayer; + +public class GT_GUIContainer_Teleporter + extends GT_GUIContainerMetaTile_Machine +{ + public GT_GUIContainer_Teleporter(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) + { + super(new GT_Container_Teleporter(aInventoryPlayer, aTileEntity), RES_PATH_GUI + "Teleporter.png"); + } + + protected void drawGuiContainerForegroundLayer(int par1, int par2) + { + this.fontRendererObj.drawString("Teleporter", 46, 8, 16448255); + if (this.mContainer != null) + { + this.fontRendererObj.drawString("X: " + GT_Utility.parseNumberToString(((GT_Container_Teleporter)this.mContainer).mTargetX), 46, 16, 16448255); + this.fontRendererObj.drawString("Y: " + GT_Utility.parseNumberToString(((GT_Container_Teleporter)this.mContainer).mTargetY), 46, 24, 16448255); + this.fontRendererObj.drawString("Z: " + GT_Utility.parseNumberToString(((GT_Container_Teleporter)this.mContainer).mTargetZ), 46, 32, 16448255); + if (((GT_Container_Teleporter)this.mContainer).mEgg > 0) { + this.fontRendererObj.drawString("Dim: " + GT_Utility.parseNumberToString(((GT_Container_Teleporter)this.mContainer).mTargetD), 46, 40, 16448255); + } + } + } + + protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) + { + super.drawGuiContainerBackgroundLayer(par1, par2, par3); + int x = (this.width - this.xSize) / 2; + int y = (this.height - this.ySize) / 2; + drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize); + } +} diff --git a/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java b/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java index 2a924713..2923569b 100644 --- a/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java +++ b/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java @@ -41,6 +41,7 @@ import gregtech.api.util.GT_Utility; /* 37: */ import gregtech.common.covers.GT_Cover_EUMeter; /* 38: */ import gregtech.common.covers.GT_Cover_ItemMeter; /* 39: */ import gregtech.common.covers.GT_Cover_LiquidMeter; +import gregtech.common.covers.GT_Cover_NeedMaintainance; /* 40: */ import gregtech.common.covers.GT_Cover_Pump; import gregtech.common.covers.GT_Cover_RedstoneReceiverExternal; import gregtech.common.covers.GT_Cover_RedstoneReceiverInternal; @@ -789,8 +790,11 @@ import net.minecraftforge.common.ForgeModContainer; GT_ModHandler.addShapelessCraftingRecipe(ItemList.Cover_RedstoneReceiverInternal.get(1L, new Object[0]), new Object[]{ItemList.Cover_RedstoneReceiverExternal.get(1L, new Object[0])}); GT_ModHandler.addShapelessCraftingRecipe(ItemList.Cover_RedstoneTransmitterExternal.get(1L, new Object[0]), new Object[]{ItemList.Cover_RedstoneTransmitterInternal.get(1L, new Object[0])}); GT_ModHandler.addShapelessCraftingRecipe(ItemList.Cover_RedstoneReceiverExternal.get(1L, new Object[0]), new Object[]{ItemList.Cover_RedstoneReceiverInternal.get(1L, new Object[0])}); - -} + + ItemList.Cover_NeedsMaintainance.set(addItem(tLastID = 748, "Needs Maintainance Cover", "Emits Redstone Signal if Multiblock Machine needs Maintainance", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L) })); + GregTech_API.registerCover(ItemList.Cover_NeedsMaintainance.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ACTIVITYDETECTOR) }), new GT_Cover_NeedMaintainance()); + GT_Values.RA.addAssemblerRecipe(ItemList.Emitter_MV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L),ItemList.Cover_NeedsMaintainance.get(1L, new Object[0]) , 600, 24); + } /* 745: */ /* 746: */ public boolean onEntityItemUpdate(EntityItem aItemEntity) /* 747: */ { diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java index 5abb3be3..3c2fc3c7 100644 --- a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java +++ b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java @@ -142,7 +142,7 @@ public class GT_MetaTileEntity_Pump extends GT_MetaTileEntity_Hatch { this.mPumpList.clear(); int y = getBaseMetaTileEntity().getYCoord() - 1; for (int yHead = getYOfPumpHead(); (this.mPumpList.isEmpty()) && (y >= yHead); y--) { - scanForFluid(getBaseMetaTileEntity().getXCoord(), y, getBaseMetaTileEntity().getZCoord(), this.mPumpList, getBaseMetaTileEntity().getXCoord(), getBaseMetaTileEntity().getZCoord(), 8*((int)Math.pow(2, this.mTier))); + scanForFluid(getBaseMetaTileEntity().getXCoord(), y, getBaseMetaTileEntity().getZCoord(), this.mPumpList, getBaseMetaTileEntity().getXCoord(), getBaseMetaTileEntity().getZCoord(), 10*((int)Math.pow(1.6, this.mTier))); } } if ((!tMovedOneDown) && (this.mPumpTimer <= 0)) { diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java index 9102bd71..e0c6225a 100644 --- a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java +++ b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java @@ -17,6 +17,7 @@ import net.minecraft.entity.item.EntityMinecart; import net.minecraft.entity.item.EntityTNTPrimed; import net.minecraft.entity.item.EntityXPOrb; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.entity.projectile.EntityFireball; import net.minecraft.entity.projectile.EntityFishHook; @@ -26,21 +27,25 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.Textures; +import gregtech.api.gui.GT_Container_MultiMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Config; import gregtech.api.util.GT_Utility; +import gregtech.common.gui.GT_Container_Teleporter; +import gregtech.common.gui.GT_GUIContainer_FusionReactor; +import gregtech.common.gui.GT_GUIContainer_Teleporter; -public class GT_MetaTileEntity_Teleporter extends GT_MetaTileEntity_Hatch{ +public class GT_MetaTileEntity_Teleporter extends GT_MetaTileEntity_BasicTank{ public int mTargetX = 0; public int mTargetY = 0; public int mTargetZ = 0; public int mTargetD = 0; - public int mCharge = 0; public boolean mDebug = false; public boolean hasEgg = false; public static boolean sInterDimensionalTeleportAllowed = true; @@ -50,11 +55,28 @@ public class GT_MetaTileEntity_Teleporter extends GT_MetaTileEntity_Hatch{ } public GT_MetaTileEntity_Teleporter(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, 3, aDescription,aTextures); + super(aName, aTier, 3, aDescription, aTextures); + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) return true; + this.hasEgg = checkForEgg(); + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } + + @Override + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_Teleporter(aPlayerInventory, aBaseMetaTileEntity); } - @Override public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {return true;} + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_Teleporter(aPlayerInventory, aBaseMetaTileEntity); + } + @Override public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new GT_MetaTileEntity_Teleporter(this.mName, this.mTier, this.mDescription, this.mTextures); @@ -62,14 +84,12 @@ public class GT_MetaTileEntity_Teleporter extends GT_MetaTileEntity_Hatch{ public String[] getInfoData() { - return new String[] { "Charge:", this.mCharge + " EU", "Coordinates:", "X: " + this.mTargetX, "Y: " + this.mTargetY, "Z: " + this.mTargetZ, "Dimension: " + this.mTargetD }; + return new String[] { "Coordinates:", "X: " + this.mTargetX, "Y: " + this.mTargetY, "Z: " + this.mTargetZ, "Dimension: " + this.mTargetD }; } - @Override public ITexture[] getTexturesActive(ITexture aBaseTexture) {return null;} - @Override public ITexture[] getTexturesInactive(ITexture aBaseTexture) {return null;} @Override public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1], (aSide !=1) ? null : aActive ? new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TELEPORTER_ACTIVE) : new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TELEPORTER) }; + return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1], (aSide !=this.getBaseMetaTileEntity().getFrontFacing()) ? null : aActive ? new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TELEPORTER_ACTIVE) : new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TELEPORTER) }; } @@ -79,7 +99,6 @@ public class GT_MetaTileEntity_Teleporter extends GT_MetaTileEntity_Hatch{ aNBT.setInteger("mTargetY", this.mTargetY); aNBT.setInteger("mTargetZ", this.mTargetZ); aNBT.setInteger("mTargetD", this.mTargetD); - aNBT.setInteger("mCharge", this.mCharge); aNBT.setBoolean("mDebug", this.mDebug); } @@ -89,7 +108,6 @@ public class GT_MetaTileEntity_Teleporter extends GT_MetaTileEntity_Hatch{ this.mTargetY = aNBT.getInteger("mTargetY"); this.mTargetZ = aNBT.getInteger("mTargetZ"); this.mTargetD = aNBT.getInteger("mTargetD"); - this.mCharge = aNBT.getInteger("mCharge"); this.mDebug = aNBT.getBoolean("mDebug"); } @@ -137,8 +155,9 @@ public class GT_MetaTileEntity_Teleporter extends GT_MetaTileEntity_Hatch{ return (this.mDebug) || ((hasDimensionalTeleportCapability()) && (GT_Utility.isRealDimension(this.mTargetD)) && (GT_Utility.isRealDimension(getBaseMetaTileEntity().getWorld().provider.dimensionId))); } - public void onPostTick() - { + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPostTick(aBaseMetaTileEntity, aTick); if (getBaseMetaTileEntity().isServerSide()) { if (getBaseMetaTileEntity().getTimer() % 100L == 50L) { @@ -146,20 +165,14 @@ public class GT_MetaTileEntity_Teleporter extends GT_MetaTileEntity_Hatch{ } if ((getBaseMetaTileEntity().isAllowedToWork()) && (getBaseMetaTileEntity().getRedstone())) { - this.mCharge -= 8192; - if (this.mCharge < 0) { - this.mCharge = 0; - } - int tDistance = distanceCalculation();int tCost = 0; + if(getBaseMetaTileEntity().decreaseStoredEnergyUnits(8192, false)){ + int tDistance = distanceCalculation(); for (Object tObject : getBaseMetaTileEntity().getWorld().getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(getBaseMetaTileEntity().getOffsetX(getBaseMetaTileEntity().getFrontFacing(), 2) - 1, getBaseMetaTileEntity().getOffsetY(getBaseMetaTileEntity().getFrontFacing(), 2) - 1, getBaseMetaTileEntity().getOffsetZ(getBaseMetaTileEntity().getFrontFacing(), 2) - 1, getBaseMetaTileEntity().getOffsetX(getBaseMetaTileEntity().getFrontFacing(), 2) + 2, getBaseMetaTileEntity().getOffsetY(getBaseMetaTileEntity().getFrontFacing(), 2) + 2, getBaseMetaTileEntity().getOffsetZ(getBaseMetaTileEntity().getFrontFacing(), 2) + 2))) { if (((tObject instanceof Entity)) && (!((Entity)tObject).isDead)) { Entity tEntity = (Entity)tObject; - if (((this.mCharge >= (tCost = (int)(tDistance * tDistance * weightCalculation(tEntity)))) && (tCost >= 0)) || (this.mDebug)) + if (getBaseMetaTileEntity().decreaseStoredEnergyUnits((int)(tDistance * tDistance * weightCalculation(tEntity)), false)) { - if (!this.mDebug) { - this.mCharge -= tCost; - } if (tEntity.ridingEntity != null) { tEntity.mountEntity(null); } @@ -168,23 +181,14 @@ public class GT_MetaTileEntity_Teleporter extends GT_MetaTileEntity_Hatch{ } if ((this.mTargetD == getBaseMetaTileEntity().getWorld().provider.dimensionId) || (!isDimensionalTeleportAvailable()) || (!GT_Utility.moveEntityToDimensionAtCoords(tEntity, this.mTargetD, this.mTargetX + 0.5D, this.mTargetY + 0.5D, this.mTargetZ + 0.5D))) { if ((tEntity instanceof EntityLivingBase)) { - ((EntityLivingBase)tEntity).setPosition(this.mTargetX + 0.5D, this.mTargetY + 0.5D, this.mTargetZ + 0.5D); + ((EntityLivingBase)tEntity).setPositionAndUpdate(this.mTargetX + 0.5D, this.mTargetY + 0.5D, this.mTargetZ + 0.5D); } else { tEntity.setPosition(this.mTargetX + 0.5D, this.mTargetY + 0.5D, this.mTargetZ + 0.5D); } } } - else - { - long tCharge = getBaseMetaTileEntity().getUniversalEnergyStored(); - if ((tCharge > 0) && (this.mCharge + tCharge > 0)) - { - this.mCharge += tCharge; - getBaseMetaTileEntity().decreaseStoredEnergyUnits(tCharge, true); - } - } } - } + }} getBaseMetaTileEntity().setActive(true); } else @@ -297,5 +301,40 @@ public class GT_MetaTileEntity_Teleporter extends GT_MetaTileEntity_Hatch{ @Override public long maxAmperesIn() {return 2;} @Override public int getStackDisplaySlot() {return 2;} @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} + + @Override + public boolean doesFillContainers() { + return false; + } + + @Override + public boolean doesEmptyContainers() { + return false; + } + + @Override + public boolean canTankBeFilled() { + return true; + } + + @Override + public boolean canTankBeEmptied() { + return false; + } + + @Override + public boolean displaysItemStack() { + return false; + } + + @Override + public boolean displaysStackSize() { + return false; + } + + @Override + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + return null; + } } diff --git a/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java index 1f5a3464..af525f8c 100644 --- a/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java +++ b/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java @@ -997,7 +997,7 @@ import net.minecraftforge.oredict.OreDictionary; GT_ModHandler.addCraftingRecipe(ItemList.Pump_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CPC", "PMP", "BPB", 'M', ItemList.Hull_IV, 'B', OrePrefixes.pipeLarge.get(Materials.TungstenSteel), 'C', OrePrefixes.circuit.get(Materials.Elite), 'P', ItemList.Electric_Pump_IV}); ItemList.Teleporter.set(new GT_MetaTileEntity_Teleporter(1145, "basicmachine.teleporter", "Teleporter",6).getStackForm(1L)); -// GT_ModHandler.addCraftingRecipe(ItemList.Teleporter.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CPC", "PMP", "BPB", 'M', ItemList.Hull_LuV, 'B', OrePrefixes.pipeLarge.get(Materials.Bronze), 'C', OrePrefixes.circuit.get(Materials.Basic), 'P', ItemList.Electric_Pump_LV}); + GT_ModHandler.addCraftingRecipe(ItemList.Teleporter.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CPC", "PMP", "BCB", 'M', ItemList.Hull_LuV, 'B', ItemList.Tool_DataOrb, 'C', OrePrefixes.circuit.get(Materials.Master), 'P', ItemList.Field_Generator_EV}); } /* 981: */ diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Thumbs.db b/main/resources/assets/gregtech/textures/gui/basicmachines/Thumbs.db index d131a4f2..1bda6259 100644 Binary files a/main/resources/assets/gregtech/textures/gui/basicmachines/Thumbs.db and b/main/resources/assets/gregtech/textures/gui/basicmachines/Thumbs.db differ diff --git a/main/resources/assets/gregtech/textures/gui/multimachines/Thumbs.db b/main/resources/assets/gregtech/textures/gui/multimachines/Thumbs.db index 6854de72..7a063c63 100644 Binary files a/main/resources/assets/gregtech/textures/gui/multimachines/Thumbs.db and b/main/resources/assets/gregtech/textures/gui/multimachines/Thumbs.db differ diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605.png b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605.png index 8b0eceea..3e3a8e61 100644 Binary files a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605.png and b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605.png differ diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/1.png b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/1.png index 99986068..e980dd71 100644 Binary files a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/1.png and b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/1.png differ diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/2.png b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/2.png index 5a8d24fc..529bf357 100644 Binary files a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/2.png and b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/2.png differ diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/3.png b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/3.png index 3ff95466..ab58494d 100644 Binary files a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/3.png and b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/3.png differ diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/4.png b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/4.png index 3dc3ab2a..d97c45c6 100644 Binary files a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/4.png and b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/4.png differ diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/5.png b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/5.png index 2bc79917..5e1cf14c 100644 Binary files a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/5.png and b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/5.png differ diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/6.png b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/6.png index c9e62808..3302b835 100644 Binary files a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/6.png and b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/6.png differ diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/7.png b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/7.png index 12ab53cf..3453515c 100644 Binary files a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/7.png and b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/7.png differ diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/8.png b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/8.png index 8b0eceea..3e3a8e61 100644 Binary files a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/8.png and b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/8.png differ diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/Thumbs.db b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/Thumbs.db index 51cfd333..ee99aa9c 100644 Binary files a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/Thumbs.db and b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/Thumbs.db differ diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/748.png b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/748.png new file mode 100644 index 00000000..c986ab73 Binary files /dev/null and b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/748.png differ diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/Thumbs.db b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/Thumbs.db index 35cb7fca..1f4611d5 100644 Binary files a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/Thumbs.db and b/main/resources/assets/gregtech/textures/items/gt.metaitem.01/Thumbs.db differ